Задать вопрос
@Snatch87
Битриксоид по принуждению

Как получить значения несколько свойств из разных таблиц через одну?

Добрый вечер! Прошу помощи,
Есть таблица сущности и модель
Entity
id
.. other fields

У меня есть несколько таблиц с данными, для упрощенного примера возьмем statuses и types. На деле таблиц будет больше

Status
id
title

Type
id
title

Есть таблица attributes

Attributes
entity_id attributable_id attributable_type

1 2 App\Models\Status
1 3 App\Models\Type

2 3 App\Models\Status
2 4 App\Models\Type

Я не хочу, чтобы в таблице entities были поля type_id и status_id, а хочу при получении записи Entity иметь свойство type (в котором будет модель Type) и Status
class Entity extends Model{
	public function type() 
	{
	}

	public function status() 
	{
	}
}

Я пробовал разные варианты связей, но пока ни к чему не пришел. Как понимаю, нужно, что-то вроде EAV но все стандартные реализации, как мне показалось, не совсем подходят.

Буду благодарен любым мыслям
  • Вопрос задан
  • 97 просмотров
Подписаться 2 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Loftschool
    Комплексное обучение PHP
    6 недель
    Далее
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Skillbox
    Профессия PHP-разработчик с нуля до PRO
    7 месяцев
    Далее
Решения вопроса 1
@Snatch87 Автор вопроса
Битриксоид по принуждению
Помогла статья на Хабре Используем трейты для полиморфных связей в Laravel

По такому принципу получилось сделать type и status для entity в множественном варианте, т.е. $entity->type возвращает коллекцию
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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