所以我的论坛上有这个主题 Controller 。该主题有很多帖子,并且该帖子属于该主题。
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()
我就不会出现错误。
最佳答案
paginate(15)
调用返回一个 Paginator
对象,其中包含许多 Topic
项。如果您想获取其中一项的 title
字段,则需要先获取其中一项。例如,您可以通过以下方式执行此操作:
$query->first()->title;
更有可能的是,您将循环遍历结果并像这样使用它们:
foreach($query as $key => $value)
{
// do something here, $value contains a Topic object.
$name = $value->name;
}
关于php - 在 Laravel 中使用 ->paginate() 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25027615/