Итак, у меня есть этот контроллер темы на моем форуме. Тема имеет много сообщений, и сообщение принадлежит теме.
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
Есть идеи? Спасибо.
EDIT: О, и если я использую ->get()
вместо ->paginate()
У меня нет ошибок.
Вызов Paginator
paginate(15)
возвращает объект Paginator
, содержащий много элементов Topic
. Если вы хотите получить поле title
одного из этих элементов, вам нужно сначала получить один из них. Вы можете сделать это, например, через:
$query->first()->title;
Скорее всего, вы пройдете через результаты и будете использовать их так:
foreach($query as $key => $value) { // do something here, $value contains a Topic object. $name = $value->name; }