【问题标题】:How do I order a relationship in Laravel?如何在 Laravel 中订购关系?
【发布时间】:2016-01-24 02:49:48
【问题描述】:

我在 StackOverflow 中看到了这个问题,但我无法回答,因为它被错误地标记为重复。但是 $user->posts 与 Posts::all() 不同。那么如果你有 User 和 Post,你如何对帖子进行排序呢?

【问题讨论】:

    标签: orm laravel-5


    【解决方案1】:

    是的,回答我自己的问题只是为了提供帮助。请注意,将帖子作为 var 调用不同于将帖子作为方法调用。 var 解析为查询结果,方法解析为查询构建器。

    class User extends Model implements ... {
        public function posts(){
                return $this->hasMany('App\Post');
            }
    
        /*
    
        /**
         * $this->posts is already a collection after query
         */
        public function recentPosts($limit = 5){
        return $this->posts
            ->sortByDesc(function ($post){
                return $post->created_at;
            })->take($limit);
        }
    
        /**
         * $this->posts() is the query builder
         */
        public function latestPosts($limit = 5){
            return $this->posts()
                    ->orderBy('created_at', 'desc')
                    ->limit($limit)
                    ->get();
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      • 2020-09-08
      • 1970-01-01
      • 2015-11-05
      相关资源
      最近更新 更多