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

Belongsto по нескольким полям?

Laravel 5.8
Для примера, имеются две таблицы users и params
Таблица users
id
params_status - foreign_key
params_sex - foreign_key
params_drinks - foreign_key

Таблица params
id - primary_key
name


Мне нужно получить ч/з отношение с помощью ленивой загрузки данные, вот как я делаю:
В модели users
  public function params()
  {
    return $this->belongsTo(params::class,'params_status');
  }
В контроллере
$listing = user::with('params')

Все отрабатывает, НО мне нужно получить одним запросом все параметры по всем полям params_status, params_sex и params_drinks
Можно сделать вот так:
В модели users
  public function paramsStatus()
  {
    return $this->belongsTo(params::class,'params_status');
  }
  public function paramsSex()
  {
    return $this->belongsTo(params::class,'params_sex');
  }
  public function paramsDrinks()
  {
    return $this->belongsTo(params::class,'params_drinks');
  }
И потом их вызывать в контроллере, но это увеличение запросов к БД, да и мне кажется не по феншую.


Гуглешь не помог, ответа нигде не смог найти, вот пишу сюда.

РАЗОБРАЛСЯ
Можно сделать как я описал выше несколько отношений и вызывать их вот так:

user::with('paramsSex','paramsStatus','paramsDrinks')
  • Вопрос задан
  • 176 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
@miki131
А зачем вам таблица params?
Ответ написан
Ваш ответ на вопрос

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

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