哪里不工作

时间:2018-06-22 05:46:07

标签: php laravel eloquent

我的数据库中有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'),但仍然没有得到任何结果。

1 个答案:

答案 0 :(得分:0)

Laravel Orderby not working inside Eloquent whereHas relationship? 该线程可帮助我理解orderBy将无法在其中存在的地方工作,因此我必须使用function。