无法从数据库获取单列值

时间:2018-10-23 23:58:29

标签: php laravel eloquent

我想从数据库中的1条记录中获取一个值,但是有一个错误...

$gamer_name = Gamer::where('user_id', $gamer_id)->first()->name;

结果,我有这个...

  

试图获取非对象的属性

如果我从这样的请求中删除->name

$gamer_name = Gamer::where('user_id', $gamer_id)->first();

然后我得到App\Gamer Object数据而不是名称。我不能只用Eloquent从单行中获取单个值。

3 个答案:

答案 0 :(得分:1)

您可以为此目的使用pluck()

$gamer_name = Gamer::where('user_id', $gamer_id)->pluck('name');

文档:https://laravel.com/docs/4.2/queries#selects

答案 1 :(得分:0)

使用查询生成器而不是集合,但这应该可以:

NSLocationAlwaysUseUsageDescription

From the documentation

  

如果甚至不需要整行,则可以使用value方法从记录中提取单个值。此方法将直接返回列的值:

     

$gamer_name = DB::table("gamers")->where("user_id", $gamer_id)->value("name");

答案 2 :(得分:0)

此查询有多种解决方案,最简单的解决方案可能是

$gamer_name = Gamer::where('user_id', $gamer_id)->first()->select('name');

下一个

$gamer_name = Gamer::where('user_id', $gamer_id)->first()->value('name');