我想从数据库中的 1 条记录中获取单个值,但出现错误...
$gamer_name = Gamer::where('user_id', $gamer_id)->first()->name;
结果,我有这个...
尝试获取非对象的属性
如果我像这样从请求中删除->name
$gamer_name = Gamer::where('user_id', $gamer_id)->first();
然后我得到AppGamer Object
数据而不是名称。我不能只使用 Eloquent 从单行中获取单个值。
您可以使用pluck()
来实现此目的
$gamer_name = Gamer::where('user_id', $gamer_id)->pluck('name');
文档 : https://laravel.com/docs/4.2/queries#selects
使用查询生成器而不是集合,但它应该可以工作:
$gamer_name = DB::table("gamers")->where("user_id", $gamer_id)->value("name");
从文档中:
如果甚至不需要整行,则可以使用 value 方法从记录中提取单个值。此方法将直接返回列的值:
$email = DB::table('users')->where('name', 'John')->value('email');
此查询有多种解决方案,最简单的可能是
$gamer_name = Gamer::where('user_id', $gamer_id)->first()->select('name');
下一个
$gamer_name = Gamer::where('user_id', $gamer_id)->first()->value('name');