📅  最后修改于: 2023-12-03 15:08:14.293000             🧑  作者: Mango
在 Laravel 中,我们可以使用 Eloquent ORM 来获取数据库表中的数据。ORM(对象关系映射)是一种编程技术,它将数据库中的表转换为对象,我们可以像使用对象一样操作这些数据。
首先,我们需要在 .env
文件中配置数据库连接信息。打开 .env
文件并设置相应的值:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_username
DB_PASSWORD=your_password
现在我们需要创建一个模型来映射数据库中的表。使用以下命令创建一个模型和对应的迁移:
php artisan make:model YourModelName -m
这将创建一个名为 YourModelName
的模型和一个对应的数据库迁移文件。打开迁移文件并定义表结构。例如,如果我们要创建一个名为 users
的表,我们可以执行以下操作:
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
在模型中,我们需要定义表名和可填充字段:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class YourModelName extends Model
{
protected $table = 'your_table_name';
protected $fillable = ['foo', 'bar'];
}
$fillable
属性指定哪些列可以在模型中被注入。
现在我们已经配置好了数据库连接和模型,让我们来看看如何从数据库中获取数据。我们可以使用 YourModelName
模型类的 all()
方法来返回数据库中的所有记录:
$users = YourModelName::all();
我们可以使用 find()
方法来根据 ID 获取单个记录:
$user = YourModelName::find(1);
我们还可以使用 where()
方法来查找符合特定条件的记录。例如,以下代码将返回 email
列等于 johndoe@example.com
的所有记录:
$users = YourModelName::where('email', 'johndoe@example.com')->get();
我们可以使用查询构造器来进一步构建查询:
$users = YourModelName::where('age', '>', 18)
->where('email', 'like', '%example.com')
->orderBy('age', 'desc')
->get();
以上代码将返回 age
列大于 18 年且 email
列以 example.com
结尾的记录,并按 age
列降序排序。
通过使用 Eloquent ORM,我们可以轻松地从 Laravel 中的数据库表中获取数据。使用模型和查询构造器,我们可以构建灵活的查询来获取符合特定条件的记录。