使用 Laravel Eloquent 模型获取数据库指定列有几种方法,本文将详细介绍以下三种方法:
1. 使用 select() 方法
2. 在模型的属性中指定 $fillable 或 $guarded 属性
3. 在查询构造器中使用 select() 方法
## 1. 使用 select() 方法
select() 方法的作用是指定查询的列,可以在查询中选择特定的字段。在 Eloquent 模型中,通过 select() 方法设置要检索的列。
示例代码如下:
```php
$users = User::select('name', 'email')->get();
```
上面的代码检索了所有用户的名字和电子邮件地址,并返回结果。在 select() 方法中,可以传递多个列名作为参数。
## 2. 在模型属性中指定 $fillable 或 $guarded 属性
可以在定义 Eloquent 模型时,通过 $fillable 或 $guarded 属性特定列。$fillable 属性是一个数组,其中包含允许从 Web 表单接收的字段名。把这些字段作为填充白名单,防止用户在表单中提供任意值。另一方面,$guarded 属性也是一个数组,它定义不受保护的字段名,这些字段不应该从用户提供的表单数据中接收。
示例代码如下:
```php
class User extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['name', 'email'];
}
```
在上面的示例中,只有用户的名称和电子邮件地址是可批量赋值的。
$fillable 和 $guarded 属性也可以直接写在数据库的迁移文件中,如下所示:
```php
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email');
$table->timestamps();
});
// 定义 $fillable 属性
protected $fillable = ['name', 'email'];
// 或者定义 $guarded 属性
protected $guarded = ['id'];
```
## 3. 在查询构造器中使用 select() 方法
还可以在查询构造器中使用 select() 方法来查询指定列名的值。
示例代码如下:
```php
$users = DB::table('users')->select('name', 'email')->get();
```
在上面的示例中,将只检索用户的名称和电子邮件地址,而不是整个用户记录。
以上是关于使用 Laravel Eloquent 模型获取数据库指定列的三种方法。如果您想进一步学习 Laravel,请参考[Laravel 文档](https://laravel.com/docs/)。