用 eloquent 获取一行虚拟数据

问题描述

举个例子

$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

解决方法

如果你想按照你建议的方式去做,我认为这应该可行:

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