Задать вопрос
@semki096

Почему не работает отношение один ко многим?

Не могу понять в чём проблема. Есть таблица с пользователями. И таблица с заказами.

В таблице заказов есть поле user_id, оно ссылается на id-пользователя в таблице user.

В Модели заказов пишу связь. Так работает (если указать user_id)
public function userId()
{
    return $this->belongsTo('App\Models\User', 'user_id');
}

А так не работает - что странно, ведь поле user_id существует в таблице заказов, и оно соответствует правилам (вроде бы).
public function userId()
{
    return $this->belongsTo('App\Models\User');
}

Зы. Заглянул в коллекцию, и вот что там увидел
["foreignKey":protected]=>
    string(10) "user_id_id"

То есть Eloquent почему-то добавил ещё один '_id'. В чём моя ошибка?
  • Вопрос задан
  • 136 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
@dk-web
public function user() без ID попробуйте
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dark_tke
@dark_tke
Помогли? Отметь решением!
Покажите связь один ко многим в модели пользователей, примерно так должна выглядеть запись
public function contact()
    {
        return $this->hasMany(Contact::class,'user_id','id');
    }


Где первое имя в удаленной таблице, а в конце имя в таблице пользователей, проверьте правильно ли вы написали
Ответ написан
Ваш ответ на вопрос

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

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