问题描述
举个例子
$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);