У меня есть модель Laravel под названием «Площадь», которая содержит «Элементы». Элементы могут быть разными (в данном случае FreetextElement и CheckboxElement). Все это связано с полиморфной сводной таблицей, , которая содержит area_id, element_id и element_type. Основные отношения работают отлично. Если я, например, сказать:Laravel Полиморфные отношения, получающие разные модели
$area->freetextElements
Тогда я получаю все freetextElements, которые прикреплены к этой конкретной области. Моя проблема в том, что мне нужна функция отношений, которая получает все элементы, прикрепленные к области, независимо от их модели.
Вот площади отношений:
public function freetextElements()
{
return $this->morphedByMany(ElementFreetext::class, 'element', 'coaching_element_area_element');
}
public function checkboxElements()
{
return $this->morphedByMany(ElementCheckbox::class, 'element', 'coaching_element_area_element');
}
//find a better solution for this
public function elements()
{
return array_merge($this->freetextElements->all(), $this->checkboxElements->all());
}
«элементы» последняя функция является лишь иллюстрацией того, что я пытаюсь добиться.
Любые предложения? Заранее спасибо.
С наилучшими пожеланиями