Я работаю над одним красноречивым запросом. Итак, идея в том, что у меня есть 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();
Или, может быть, у кого-то есть лучшая идея достичь этого?