我的来宾数据库中有4条记录。
我正在尝试向note_display = 1
并且ID最高的访客查询。
$last_note = DB::table('guests')->where('note_display','=',1)->where('id', DB::raw("(select max(`id`) from guests)"))->first();
我得到了
Trying to get property of non-object
我现在已经陷入困境,任何提示都会有很大的帮助吗?
答案 0 :(得分:3)
此查询中无需使用raw
。您可以运行一个简单的查询,如
Guest::where('note_display', 1)->orderBy('id', 'desc')->first();
它将返回具有最高ID
且note_display
= 1
的来宾。
答案 1 :(得分:1)
原始sql字符串应该类似于SELECT * FROM guests WHERE note_display = 1 ORDER BY id DESC LIMIT 1
,看起来你只能在子查询note_display = 1
WHERE id={the maximum id present in the table}
行
答案 2 :(得分:1)
它选择note_display为0的最大id,因此尝试获取非对象错误。
如果你坚持要raw
试试这个!
$last_note = DB::table('guests')->where('id', DB::raw("(select max(`id`) from guests where note_display = '1')"))->first();