使用laravel的Eloquent模型如何获取数据库的指定列

使用 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/)。

后端开发标签