【问题标题】:How to remove index number from laravel eloquent unique如何从 laravel eloquent unique 中删除索引号
【发布时间】:2017-10-17 17:13:08
【问题描述】:

我正在使用一个可以完美返回值的查询,但它会将键号添加到集合中。如何删除索引号?

这是检索到的数据

{
"data": {
    "0": {
        "id": 135,
        "conversation_id": 11,
        "last_sender": null,
        "last_reciever": {
            "id": 54,
            "userName": "Sadek",
            "profilePic": "Nir7zgorNT2dmwcXJdhNK3ZmPAltmkEnj0SXDCDC.png",
            "firstName": "Sadek",
            "lastName": "Hossain"
        },
        "msg": "hello guys how are you",
        "attachment": null,
        "deleted": 0,
        "seen": 0,
        "created_at": "2017-10-17 16:56:41",
        "updated_at": "2017-10-17 16:56:41"
    },
    "2": {
        "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"
    }
}

}

但我想返回这样的结果

{
"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": 135,
        "conversation_id": 11,
        "last_sender": null,
        "last_reciever": {
            "id": 54,
            "userName": "Sadek",
            "profilePic": "Nir7zgorNT2dmwcXJdhNK3ZmPAltmkEnj0SXDCDC.png",
            "firstName": "Sadek",
            "lastName": "Hossain"
        },
        "msg": "hello guys how are you",
        "attachment": null,
        "deleted": 0,
        "seen": 0,
        "created_at": "2017-10-17 16:56:41",
        "updated_at": "2017-10-17 16:56:41"
    }
]

}

我的查询是(我认为重要的最后几部分)

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

请告诉我如何从这个集合中删除“0”和“2”。

【问题讨论】:

  • 尝试使用$collection->toArray()!!
  • 不行不行 :(

标签: php laravel eloquent


【解决方案1】:

为了获得没有索引的集合,您必须添加“值”方法

$collection->unique('id')->values();

【讨论】:

    【解决方案2】:

    你必须手动完成

       $users=\App\User::get()->toArray(); // your query here 
       $data['data']=[];
       foreach($users as $user ){ 
             $data['data'][]=$user; 
        }
       $k=json_encode($data); dd($k);
    

    【讨论】:

    • 非常感谢。知道如何实现它吗?
    • 试试 $data=json_encode($your_array);看看有没有帮助
    • No :( 它只编码。我想删除这些“0”和“2”外部数组
    • $users=\App\User::get()->toArray(); // 你的查询在这里 $data['data']=[]; foreach($users as $user){ $data['data'][]=$user; } $k=json_encode($data); dd($k);
    • 是的,几乎就在那里,但是当我使用return response()->json([ 'data' =>$data ],200);返回时,它会在外面添加额外的“数据”
    猜你喜欢
    • 2019-11-03
    • 1970-01-01
    • 2021-11-29
    • 2016-07-01
    • 2020-08-14
    • 2020-03-05
    • 2020-04-12
    • 2014-05-07
    • 2020-06-21
    相关资源
    最近更新 更多