2015-08-31 103 views
1

我有一個模型TopicPost分頁一對多關係

每個Topic有很多Post

我的Topic模型擴展了Post的一對多關係的雄辯。

class Topic extends Eloquent 
{ 

    public function posts() 
    { 
     return $this->hasMany('Post'); 
    } 

} 

我的Post模型也擴展了雄辯。

class Post extends Eloquent 
{ 

    public function topic() 
    { 
     return $this->belongsTo('Post'); 
    } 

} 

在我的TopicController,我想分頁我的帖子通過關係。我花費這樣的東西會工作:

$topic->posts->paginate(20); 

但是,它是一個Collection對象。因此,我收到以下錯誤消息。

調用未定義的方法 照亮\數據庫\雄辯\收藏:: PAGINATE()

如何正確分頁一個一對多的關係?

回答

1

這裏的問題是$topic->posts$topic->posts()不同。而前者是一個Illuminate\Database\Eloquent\Collection對象。後者是一個Illuminate\Database\Eloquent\Relations\HasMany對象。

因此,下面的工作。

$topic->posts()->paginate(20); 
+0

您如何使用渲染功能打印數字? – jrltt

+0

好吧,我找到'$ topic-> posts() - > paginate(10) - > render()' – jrltt