查询语句上的Laravel查询生成器错误

时间:2018-02-23 19:05:13

标签: php laravel laravel-5

我试图从两个表中选择。从人员表需要名称和图像URL以及消息表需要用户发送/接收的最后一条消息。

在人们中,人员ID字段是唯一的,而消息表具有人员ID。

我编写了执行任务的简单查询,但是当我在laravel中使用相同的查询时,它给出了一个错误说"访问冲突"

这是我运行时的sql语句:

select people.id, people.first_name, people.last_name, people.img_url, user_messages.message, user_messages.created_at from people inner join user_messages on people.id = user_messages.people_id where people.user_id =1 group by people.id order by user_messages.created_at DESC

这是带错误的Laravel查询

$people = DB::table('people')->select('people.id','people.first_name','people.last_name','people.img_url' ,'user_messages.message','user_messages.created_at')
        ->join('user_messages','people.id','=','user_messages.people_id')
        ->where(['people.user_id' => $user_id])
        ->groupBy('people.id')
        ->orderBy('user_messages.created_at', 'desc')
        ->get();

如果我包含所有字段,它没有显示错误消息,但随后选择了所有消息。

1 个答案:

答案 0 :(得分:0)

$people = DB::table('people')
    ->join('user_messages','people.id','=','user_messages.people_id')
    ->select('people.id','people.first_name','people.last_name','people.img_url' ,'user_messages.message','user_messages.created_at')
    ->where(['people.user_id' => $user_id])
    ->groupBy('people.id')
    ->orderBy('user_messages.created_at', 'desc')
    ->get();