Приветствую коллеги, суть такова, есть модель с отношениями которая ссылается сама на себя
public function getUnitedNameAttribute()
{
$additional_name = $this->dependantGroup()->get();
$name = $this->name;
return $name . (($additional_name->count() > 0) ? " / " .$additional_name->first()->name : "");
}
public function dependantGroup()
{
return $this->hasOne(Group::class, 'united_with');
}
public function parentGroup()
{
return $this->belongsTo(Group::class,'id');
}
И все нормально работает, но проблема в том, что в случае если мы запрашиваем группу значений, для каждого отдельного элемента создается новый запрос, который и формирует объединенное имя. Вопрос: Как можно изменить(дополнить) данный код, чтобы формировать нужные данные одним или несколькими запросами, но никак не сотней. Я покопался, но пока в голову откровенно ничего не приходит.
Может есть возможность как то через скоупы это дело собрать, но честно говоря не совсем понимаю как.