【发布时间】:2016-01-24 02:49:48
【问题描述】:
我在 StackOverflow 中看到了这个问题,但我无法回答,因为它被错误地标记为重复。但是 $user->posts 与 Posts::all() 不同。那么如果你有 User 和 Post,你如何对帖子进行排序呢?
【问题讨论】:
我在 StackOverflow 中看到了这个问题,但我无法回答,因为它被错误地标记为重复。但是 $user->posts 与 Posts::all() 不同。那么如果你有 User 和 Post,你如何对帖子进行排序呢?
【问题讨论】:
是的,回答我自己的问题只是为了提供帮助。请注意,将帖子作为 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();
}
}
【讨论】: