用 eloquent 获取一行虚拟数据

Posted

技术标签:

【中文标题】用 eloquent 获取一行虚拟数据【英文标题】:get one row of dummy data with eloquent 【发布时间】:2021-09-09 14:20:32 【问题描述】:

举个例子

$result = Players::select("first_name", "last_name")->where("some_field", "some_value");

返回Illuminate\Database\Eloquent\Builder

现在我想用虚拟数据“模拟”同样的事情,所以我这样做了

$result = Players::select(DB::raw("'john', 'doe'"));

这行得通,但是当查询运行时,如果玩家表有 10 行,我会得到 10 行充满 john doe 的行,而我只需要一个。

我试过了

$result = Players::select(DB::raw("'john', 'doe'"))->limit(1);

但是没有效果

我怎样才能只获得 1 行虚拟数据?考虑到$result 必须返回一个Illuminate\Database\Eloquent\Builder

【问题讨论】:

【参考方案1】:

如果您想按照建议的方式进行操作,我认为这应该可行:

$result = Players::select(DB::raw("'john' as first_name , 'doe' as last_name"))->take(1);

【讨论】:

以上是关于用 eloquent 获取一行虚拟数据的主要内容,如果未能解决你的问题,请参考以下文章

Laravel Eloquent - 获取一行

Laravel Eloquent ORM - 获取第一和第三表数据

如何从 Laravel 8 Eloquent 中的嵌套关​​系中获取数据?

如何使用 Laravel 的 Eloquent/Fluent 将每一行设置为相同的值?

Eloquent 从数据透视表中获取数据

无法获取加入多个 Eloquent 关系的数据