LARAVEL - красноречивая связь с нулевыми идентификаторами - PullRequest
0 голосов
/ 24 мая 2019

Я работаю над одним красноречивым запросом. Итак, идея в том, что у меня есть 2 модели, назовем это Файлы и Цены . Файлы hasMany , поэтому в таблице цен у меня есть поле file_id. Но у меня есть цены по умолчанию в таблице цен, которая имеет file_id = null. Я хочу получить файлы с ценами, а также с ценами по умолчанию, которые file_id = null. Самое главное, что я хотел бы справиться с этим красноречиво, из-за некоторых других отношений, которые имеют таблица цен. Итак, у меня есть идея, что в Файловой модели я получаю связанные цены и цены по умолчанию, а затем объединяю их. Но я не могу выполнить запрос в красноречивой модели, чтобы получить цены по умолчанию, которые имеют file_id = null. Я хочу получить что-то подобное:

public function filePricing() 
{
  return $this->hasMany(Pricing::class);
}

public function defaultPricing() 
{
  return Pricing::where('file_id', null);
}

public function pricing()
{
 return $this->defaultPricing()->merge($this->filePricing());
}

Итак, в контроллере я хотел бы сделать:

File::with('pricing', 'pricing.[myNextRelation]')->get();

Или, может быть, у кого-то есть лучшая идея достичь этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...