我的数据库中有3个表。 1.问题表,每个问题都有一段对话 2.对话表-每个对话都有消息 3.邮件表
我正在对会话表进行查询
$answerQuery = \App\Models\TB_Conversation::withCount('hasManyMessages')
->with(['hasManyMessages', 'hasManyMessages.createdBy', 'hasManyMessages.reply_of_message_id'])
->where('TB_Xolution_Problem_id', '=', $request->problem_id)
->whereHas('hasManyMessages', function ($query) {
$query->where('status_enum', '=', ENUM_STATUS_CODE_ACTIVE)
->orderBy('created_on', 'DESC');
})->where(function ($query) use ($userId) {
$query->where('initiated_user_id', '=', $userId)
->orwhere('receiver_user_id', '=', $userId);
})->get();
我希望所有对话消息都以降序排列,但是由于whereHas子句,查询失败。我在做什么错,我的对话中有消息。
Edit_1-我尝试使用orderBy('created_on','desc'),但仍然没有得到任何结果。
答案 0 :(得分:0)
Laravel Orderby not working inside Eloquent whereHas relationship? 该线程可帮助我理解orderBy将无法在其中存在的地方工作,因此我必须使用function。