提问者:小点点

Laravel雄辩的顺序按组通过与渴望加载


我有一个查询,运行组通过和顺序通过渴望加载,它似乎组的作品很好,但顺序不工作。

Message::whereIn('conversation_id',$msgs)
        ->where('deleted', '!=', $userId)
        ->with(array('last_sender' =>function($query) use ($userId){
                $query->where('id','!=', $userId);
                $query->select('id', 'userName', 'profilePic','firstName', 'lastName');
          }))

         ->with(array('last_reciever' =>function($query) use ($userId){
                $query->where('id','!=', $userId);
                $query->select('id', 'userName', 'profilePic','firstName', 'lastName');
          }))
         ->orderBy('id', 'desc')
         ->orderBy('conversation_id', 'desc') 
         ->groupBy('id')
         ->groupBy('conversation_id')
         ->get();

它返回这样的数据

{
"data": [
    {
        "id": 133,
        "conversation_id": 13,
        "last_sender": null,
        "last_reciever": {
            "id": 55,
            "userName": "buyer",
            "profilePic": "pRBDBFJW55baSnF560Ajid8jTgPo5kmg4i5LMhPG.jpeg",
            "firstName": "Matti",
            "lastName": "Rames"
        },
        "msg": "second message 2 to user second",
        "attachment": null,
        "deleted": 0,
        "seen": 0,
        "created_at": "2017-10-17 15:43:14",
        "updated_at": "2017-10-17 15:43:14"
    },
    {
        "id": 132,
        "conversation_id": 11,
        "last_sender": null,
        "last_reciever": {
            "id": 54,
            "userName": "Sadek",
            "profilePic": "Nir7zgorNT2dmwcXJdhNK3ZmPAltmkEnj0SXDCDC.png",
            "firstName": "Sadek",
            "lastName": "Hossain"
        },
        "msg": "second message to first user",
        "attachment": null,
        "deleted": 0,
        "seen": 0,
        "created_at": "2017-10-17 15:38:16",
        "updated_at": "2017-10-17 15:38:16"
    },
    {
        "id": 131,
        "conversation_id": 13,
        "last_sender": null,
        "last_reciever": {
            "id": 55,
            "userName": "buyer",
            "profilePic": "pRBDBFJW55baSnF560Ajid8jTgPo5kmg4i5LMhPG.jpeg",
            "firstName": "Matti",
            "lastName": "Rames"
        },
        "msg": "second message to second user",
        "attachment": null,
        "deleted": 0,
        "seen": 0,
        "created_at": "2017-10-17 15:37:49",
        "updated_at": "2017-10-17 15:37:49"
    },
    {
        "id": 130,
        "conversation_id": 11,
        "last_sender": null,
        "last_reciever": {
            "id": 54,
            "userName": "Sadek",
            "profilePic": "Nir7zgorNT2dmwcXJdhNK3ZmPAltmkEnj0SXDCDC.png",
            "firstName": "Sadek",
            "lastName": "Hossain"
        },
        "msg": "Hi how are you",
        "attachment": null,
        "deleted": 0,
        "seen": 0,
        "created_at": "2017-10-17 15:36:49",
        "updated_at": "2017-10-17 15:36:49"
    }
]

}

但我只想返回前两个最新结果。只有id133132我知道我添加了-

请帮忙。非常感谢。


共1个答案

匿名用户

好的,我解决了这个问题,增加了一行:)我是在寻求别人的帮助。

->orderBy('created_at', 'desc') 
->get()
->unique('conversation_id');