在Laravel中使用 - > paginate()时出错

时间:2014-07-30 01:54:56

标签: php laravel laravel-4 paginate

所以我在论坛上有这个Topic控制器。主题有很多帖子,帖子属于主题。

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

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

要获取有关主题的信息以及与之相关的所有帖子,我会这样做:

$query = Topic::where('id', $id)->with('posts');

但每次我尝试添加:

$query = $query->paginate(15)

我使用$topic->title,我得到:

Undefined property: Illuminate\Pagination\Paginator::$title

有什么想法吗?谢谢。

编辑:哦,如果我使用->get()代替->paginate(),我就不会有错误。

1 个答案:

答案 0 :(得分:2)

paginate(15)调用返回一个Paginator对象,其中包含许多Topic项。如果您想获得其中一个项目的title字段,则需要先获取其中一个。您可以通过以下方式执行此操作:

$query->first()->title;

更有可能的是,您将遍历结果并使用它们:

foreach($query as $key => $value)
{
    // do something here, $value contains a Topic object.
    $name = $value->name;
}