Почему Laravel не видит простую связь моделей?

Модель отзывов:
class Reviews extends Model
{
    protected $timestamp = false;

    public function user() {
        return $this->hasOne('Users', 'id', 'user');
    }
}


Таблица Reviews:
5a8d60b8c4cb7407532001.png

Попытка вывода
@foreach($reviews as $review)
            <div class="card">
                {{$review->user->firstName}}
                {{$review->text}}
            </div>
        @endforeach


Ошибка:
5a8d610a6450b394418445.png
  • Вопрос задан
  • 518 просмотров
Пригласить эксперта
Ответы на вопрос 2
solotony
@solotony
покоряю пик Балмера
назови все правильно

Модель надо называть не Reviews а Review

user это свойство Reviews ? Это id из таблицы users ? тогда называть надо user_id

тогда было бы

public function user() {
        return $this->hasOne('App\User', 'id', 'user_id');
    }


хотя и это неверно

Поскольку модель Review содержит foreign key на User то должно быть

public function user() {
        return $this->belongsTo('App\User', 'user_id', 'id');
}
Ответ написан
Комментировать
@hakkol
Ну из ошибки же видно, что у вас связь не рабочая, правильно путь до модели задайте
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы