如何对laravel中的对象数组进行排序?

这是我的关系函数


public function comments()

{

    return $this->hasMany(Comment::class);

}

这是我的控制器


public function allComments($id)

{

    $id=(int)$id;

    $post=Post::find($id);

    $comments=$post->comments;

    return dd($comments);

}

当我收到关系船的评论并返回时显示


[

  {

    "id":48,

    "user_id":1,

    "post_id":17,

    "isactive":1,

    "body":"s",

    "created_at":"2019-08-24 02:53:54",

    "updated_at":"2019-08-24 02:53:54"},

    {

      "id":78,

      "user_id":1,

      "post_id":17,

      "isactive":1,

      "body":"s",

      "created_at":"2019-08-24 02:54:06",

      "updated_at":"2019-08-24 02:54:06"

    },

    {

      "id":79,

      "user_id":1,

      "post_id":17,

      "isactive":1,

      "body":"s",

      "created_at":"2019-08-24 02:54:06",

      "updated_at":"2019-08-24 02:54:06"

    },

    {

      "id":80,

      "user_id":2,

      "post_id":17,

      "isactive":1,

      "body":"\u06a9\u06cc\u0631 \u062e\u0631\u06cc",

      "created_at":"2019-08-25 06:48:51",

      "updated_at":"2019-08-24 06:48:51"

    },

    {

      "id":102,

      "user_id":2,

      "post_id":17,

      "isactive":1,

      "body":"\u0628",

      "created_at":"2019-08-25 01:32:39",

      "updated_at":"2019-08-25 01:32:39"

     },

     {

       "id":103,

       "user_id":2,

       "post_id":17,

       "isactive":1,

       "body":"\u0645\u0646 \u0628\u0627\u06cc\u062f \u0627\u0648\u0644 \u0628\u0627\u0634\u0645",

       "created_at":"2019-08-25 01:35:13",

       "updated_at":"2019-08-25 01:35:13"

     },

     {

       "id":104,

       "user_id":2,

       "post_id":17,

       "isactive":1,

       "body":"\u0645\u0646 \u0627\u0648\u0644\u0645",

       "created_at":"2019-08-25 02:01:32",

       "updated_at":"2019-08-25 02:01:32"

     },

     {

       "id":105,

       "user_id":2,

       "post_id":17,

       "isactive":1,

       "body":"\u0627\u0648\u0644 \u0634\u062f\u0645",

       "created_at":"2019-08-25 02:02:18",

       "updated_at":"2019-08-25 02:02:18"

     }

]

我不想要它,我只想按created_at对其进行排序,但它是这样显示的(这是字典吗?)


白板的微信
浏览 235回答 2
2回答

叮当猫咪

要在应用过滤器后删除对象键sortByDesc(),您可以附加values()then all():public function allComments($id){    $id=(int)$id;    $post=Post::find($id);    $comments=$post->comments->sortByDesc('created_at')->values()->all();    return $comments;}

蛊毒传说

使用Laravel Collection 的values()功能。这将从结果集合中删除键。如果你想要一个数组而不是一个集合,请使用values()->all() .public function allComments($id){    $id = (int) $id;    $post = Post::find($id);    $comments = $post->comments                    ->sortByDesc('created_at')                    ->values()                    ->all();    return $comments;}建议更流畅的代码。public function allComments($id){    $comments = Comment::where('pots_id', $id)                    ->sortByDesc('created_at')                    ->values()                    ->all();    return $comments;}
打开App,查看更多内容
随时随地看视频慕课网APP