我有一个模型Topic
和Post
。
每个Topic
都有许多Post
。
我的Topic
模型扩展了Eloquent与Post
的一对多关系。
class Topic extends Eloquent
{
public function posts()
{
return $this->hasMany('Post');
}
}
我的Post
模型也扩展了Eloquent。
class Post extends Eloquent
{
public function topic()
{
return $this->belongsTo('Post');
}
}
在我的TopicController
中,我想通过关系对我的帖子进行分页。我花了这样的东西会起作用:
$topic->posts->paginate(20);
但是,它是一个Collection
对象。因此,我收到以下错误消息。
调用未定义的方法 照亮\数据库\锋\收藏:: PAGINATE()
如何正确分页一对多关系?
答案 0 :(得分:2)
此处的问题是$topic->posts
与$topic->posts()
不同。而前者是Illuminate\Database\Eloquent\Collection
对象。后者是Illuminate\Database\Eloquent\Relations\HasMany
对象。
因此,以下方法可行。
$topic->posts()->paginate(20);