Я добавляю функцию анонса в мое приложение.Доступ к отношениям отношений
У меня есть announcements
таблицу, в которой хранится объявление и announcement_active
таблицу, которая хранит undismissed объявления для каждого пользователя.
Когда создается объявление, в таблице announcements
создается запись, чтобы сохранить это, и запись, введенная в таблицу announcement_active
для каждого пользователя для этого объявления.
Моя модель пользователя имеет отношения для активных объявлений:
public function activeAnnouncements()
{
return $this->hasMany('App\ActiveAnnouncements');
}
Я тогда доступ к этим, на мой взгляд, чтобы проверить любой undismissed объявлений, как это:
@if (Auth::user()->activeAnnouncements()->count() > 0)
//code
@endif
Вышеуказанное работает отлично, это когда я пытаюсь сделать цикл for each
на объявлениях, которые возникают у меня:
@if (Auth::user()->activeAnnouncements()->count() > 0)
@foreach(Auth::user()->activeAnnouncements()->announcement as $announcement)
//code to display announcement
@endforeach
@endif
Это когда я цепляю ->announcement
, что я бегу в неприятности. Я определил отношения как так:
public function announcement()
{
return $this->belongsTo('\App\Announcements');
}
Однако я получаю ошибку:
Undefined property: Illuminate\Database\Eloquent\Relations\HasMany::$announcement
При использовании Тинкера и работает \App\User::find(1)->activeAnnouncements()->first()->announcement
правильного объявление шоу.
Где я ошибаюсь при попытке загрузить их в мой цикл foreach?
Я буквально только что пришел к решению '-> get()', когда вы ответили. Однако мне определенно нравится автоматическая версия свойств больше. Будет проверено, что '@ каждая' функциональность в ближайшее время, с первого взгляда это выглядит полезным! Спасибо, Джоэл! – James
Привет, я рад, что это помогло. :) –