#php #laravel
#php #laravel
Вопрос:
здравствуйте, у меня есть две таблицы с такими отношениями: Модель пользователя :
public function OneYearBodys()
{
return $this->hasMany('AppOneYearBody');
}
Модель OneYearBody :
public function user()
{
return $this->belongsTo('AppUser');
}
контроллер :
public function index()
{
$Bodies = OneYearBody::all();
return view('OneYear.Body')->with('Bodies',$Bodies);
}
Теперь мне нужно отобразить данные для конкретного вошедшего в систему пользователя, который создал эти данные, я уже храню его идентификатор в базе данных
итак, я попробовал это :
@foreach (Auth::user()->Bodies as $body)
{{ $body->OneYearBody }}
<br>
@endforeach
но я получаю эту ошибку: invalid argument supplied for foreach()
и когда я отображаю данные для всех пользователей, они работают, когда я делаю это :
@foreach ($Bodies as $body)
{{ $body->OneYearBody }}
<br>
@endforeach
Комментарии:
1.
Auth::user()->Bodies
не возвращает итерацию; вероятноnull
, поскольку у вас нет apublic function bodies()
в вашейUser
модели.2. да, спасибо, это была проблема
Ответ №1:
Вы объявили связь как public function OneYearBodys() { ... }
, поэтому вы должны повторять ее с этим именем. @foreach (Auth::user()->OneYearBodys as $body)
Ответ №2:
Если вы хотите получить доступ к следующему
@foreach (Auth::user()->Bodies as $body)
{{ $body->OneYearBody }}
<br>
@endforeach
Вам нужно будет добавить отношение Тел к вашей пользовательской модели. Или измените тела на OneYearBodys