@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 но все стандартные реализации, как мне показалось, не совсем подходят.

Буду благодарен любым мыслям
  • Вопрос задан
  • 85 просмотров
Решения вопроса 1
@Snatch87 Автор вопроса
Битриксоид по принуждению
Помогла статья на Хабре Используем трейты для полиморфных связей в Laravel

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

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

Войти через центр авторизации
Похожие вопросы