Я пытаюсь получить профиль, относящийся к данному пользователю на моем сайте.PHP Laravel eloquent отношение не работает при использовании findOrFail
Связь настроена правильно (я могу это сделать: Auth::user() -> profile
для доступа к данным профиля Но когда я пытаюсь сделать это:. User::findOrFail(1) -> profile
он дает мне ошибку, говоря, что это не объект (а значение профиля равно . null
Почему это И да пользователь с идентификатором 1
существует
в моей User
модели я установка это:?.
public function profile() {
return $this -> hasOne('App\Profile', 'user_id');
}
И в моей Profile
модели я сделал это:
public function user() {
return $this -> belongsTo('App\User', 'user_id');
}
Я только что увидел эту проблему при захвате X-пользователей и прохождении через них в петле foreach, как показано ниже.
<div class="thumbs-wrapper text-center">
@foreach ($last_online as $user)
<div class="thumb @if(\App\User::isOnline($user -> id)) online @else offline @endif">
<a href="/profile/view/{{ $user -> id }}">
<img src="{{ asset($user -> profile -> picture) }}">
</a>
</div>
@endforeach
</div>
Что может быть неправильным? Заранее спасибо.
Один или несколько пользователей в этом Еогеасп не сделано профиль, вот и все –
У всех пользователей есть профиль. Он создается при регистрации пользователя с тем же user_id, что и пользователь. И я также проверил это вручную в моем менеджере баз данных. – Kaizokupuffball
Затем проверьте стек и убедитесь, где произошла ошибка. –