📜  laravel eloquent 返回数组 where - PHP (1)

📅  最后修改于: 2023-12-03 15:17:12.576000             🧑  作者: Mango

Laravel Eloquent 返回数组 where

Laravel Eloquent是一种方便的ORM(对象关系映射器),可以帮助程序员从数据库中读取数据,并将其转换为易于使用的对象。

其中,where是Eloquent非常重要的一种用法,它可以让我们根据给定的条件来获取符合条件的数据。在本文中,我们将介绍如何使用where来返回数组,以下是详细内容。

1. 使用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()方法将其转换为数组。

2. 使用where返回指定字段的数组

我们可以指定要返回的字段,以便更好地满足我们的需求。以下是一个示例:

$users = User::query()->where('name', 'John')->pluck('age')->toArray();

在这个例子中,我们只返回age字段,并将其转换为数组。

3. 使用where返回所有字段的数组

我们也可以选择返回所有字段,只需将pluck()替换为get()即可。以下是一个示例:

$users = User::query()->where('name', 'John')->get()->toArray();

在这个例子中,我们返回了指定name字段的所有列,然后将它们转换为数组。

4. 使用多个where条件

我们可以使用多个where条件来指定多个查询条件。以下是一个示例:

$users = User::query()
            ->where('name', 'John')
            ->where('age', '>=', 18)
            ->get()
            ->toArray();

在这个例子中,我们使用了两个where条件,分别用于指定nameJohnage大于或等于18。然后我们使用get()方法来执行查询并返回符合条件的所有记录。

5. 总结

使用where语句可以方便我们根据条件来获取符合要求的数据,从而实现快速的数据查询。以上是使用Laravel Eloquent进行where查询返回数组的指南,希望对大家有所帮助。