所以我在论坛上有这个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()
,我就不会有错误。
答案 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;
}