我正在尝试从匹配我的WHERE子句的第一个记录返回单个列值。在我的控制器的下面的例子中,我将此结果定义为$ code。我可以获得第一条记录,也可以获得特定的列值,但不能同时获得两者。
第一记录: $ code = DB :: table('codes') - > where('redeemed','0') - > first();
单列值: $ code = DB :: table('codes') - > where('redeemed','0') - > value('code');
如何在一个请求中同时执行这两项操作?
答案 0 :(得分:3)
您要找的是bindings: {
callback : '&?'
},
。
pluck
答案 1 :(得分:1)
您可以使用select()
方法:
DB::table('codes')->where('redeemed', '0')->select('code')->first();
答案 2 :(得分:0)
你的第二个例子:
$code = DB::table('codes')->where('redeemed', '0')->value('code');
这已经可以做你想要的了。 value()
方法调用first()
,如方法定义所示:
public function value($column)
{
$result = (array) $this->first([$column]); // <-- call to first on query
return count($result) > 0 ? reset($result) : null;
}