我有一些模型,如用户,帖子,评论等。
在用户中,我有:
public function posts()
{
return $this->hasMany('Post');
}
我可以通过$customer->posts()->first()
获得第一篇帖子,但如果我想获得最新的帖子怎么办?我看不到最后一个()。
hasManyThrough关系更加复杂(遗憾的是我们继承了一个古怪的架构):
public function comments()
{
return $this->hasManyThrough('Comment', 'Post');
}
如果我尝试执行$this->comments()->orderBy('comments.id', 'desc')->first();
它会返回一个User对象??
答案 0 :(得分:6)
不,这个
// User model
$this->comments()->orderBy('comments.id', 'desc')->first();
不会返回User
模型。
为了得到你所要求的,只需这样做:
$customer->posts()->latest()->first();
答案 1 :(得分:2)
您说There is no last() as I can see
,但实际上还有一个last()
方法,因此您可以像以下一样使用它:
$customer->posts->last();
请注意,它不是$customer->posts()->last()
,就像您在使用first()
的示例中所使用的那样。