📅  最后修改于: 2023-12-03 15:17:12.576000             🧑  作者: Mango
Laravel Eloquent是一种方便的ORM(对象关系映射器),可以帮助程序员从数据库中读取数据,并将其转换为易于使用的对象。
其中,where
是Eloquent非常重要的一种用法,它可以让我们根据给定的条件来获取符合条件的数据。在本文中,我们将介绍如何使用where
来返回数组,以下是详细内容。
我们首先需要有一个模型,该模型对应我们要操作的数据库表。在这里,我们以User
模型为例:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
protected $table = 'users';
protected $primaryKey = 'id';
public $timestamps = true;
}
在模型中,我们需要指定模型所使用的表,以及表的主键字段。在本例中,我们用$table
变量来指定表名,用$primaryKey
变量来指定主键字段。
为了使用where
语句,我们需要从模型中实例化一个查询器对象:
$users = User::query()->where('name', 'John')->get()->toArray();
在这个例子中,我们使用query()
方法来返回一个查询器对象。接着,我们使用where()
方法来指定name
字段为John
。最后,我们使用get()
方法来执行查询,将返回一个Eloquent集合对象,然后我们使用toArray()
方法将其转换为数组。
我们可以指定要返回的字段,以便更好地满足我们的需求。以下是一个示例:
$users = User::query()->where('name', 'John')->pluck('age')->toArray();
在这个例子中,我们只返回age
字段,并将其转换为数组。
我们也可以选择返回所有字段,只需将pluck()
替换为get()
即可。以下是一个示例:
$users = User::query()->where('name', 'John')->get()->toArray();
在这个例子中,我们返回了指定name
字段的所有列,然后将它们转换为数组。
我们可以使用多个where
条件来指定多个查询条件。以下是一个示例:
$users = User::query()
->where('name', 'John')
->where('age', '>=', 18)
->get()
->toArray();
在这个例子中,我们使用了两个where
条件,分别用于指定name
为John
和age
大于或等于18
。然后我们使用get()
方法来执行查询并返回符合条件的所有记录。
使用where
语句可以方便我们根据条件来获取符合要求的数据,从而实现快速的数据查询。以上是使用Laravel Eloquent
进行where
查询返回数组的指南,希望对大家有所帮助。