Laravel / Lumen:如何从匹配WHERE子句

时间:2017-03-09 20:30:34

标签: php laravel lumen

我正在尝试从匹配我的WHERE子句的第一个记录返回单个列值。在我的控制器的下面的例子中,我将此结果定义为$ code。我可以获得第一条记录,也可以获得特定的列值,但不能同时获得两者。

第一记录:    $ code = DB :: table('codes') - > where('redeemed','0') - > first();

单列值:    $ code = DB :: table('codes') - > where('redeemed','0') - > value('code');

如何在一个请求中同时执行这两项操作?

3 个答案:

答案 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;
}