Используйте несколько моделей в отношении laravel

Я работаю над приложением Laravel, которое будет использовать структуру данных EAV. Требуемая структура должна работать следующим образом:

entity_types
 - id = 1
 - name = "Contact"


fields
 - id = 1
 - entity_type_id = 1
 - name = "First Name"
 - datatype = "text"

 - id = 2
 - entity_type_id = 1
 - name = "Last Name"
 - datatype = "text"

 - id = 3
 - entity_type_id = 1
 - name = "Phone"
 - datatype = "number"


entities
 - id = 1
 - entity_type_id = 1


values_text
 - id = 1
 - field_id = 1
 - entity_id = 1

 - id = 2
 - field_id = 2
 - entity_id = 1


values_number
 - id = 1
 - field_id = 3
 - entity_id = 1

Проблема, с которой я сейчас сталкиваюсь, - это получение всех значений / полей из модели сущности. В основном мне нужно что-то вроде использования нескольких моделей в HasMany Relationship, чтобы базовая модель могла просматривать несколько таблиц. т.е.

public function values() : HasMany
{

    return $this->hasMany([ValueText::class, ValueNumber::class]);

}

Я знаю, что есть и другие плагины, но они не полностью удовлетворяют мои потребности, и я хочу создать для этого индивидуально закодированное решение.

Спасибо за вашу помощь!

Думаю, что вам нужно, это morphMany? laravel.com/docs/5.7/…

Wreigh 29.10.2018 03:12

А может hasManyThrough? laravel.com/docs/5.7/eloquent-relationships#has-many-through

Philip 29.10.2018 04:21

@Wreigh, спасибо за подсказку, дружище! @Philip разобрал его на полпути через hasManyThrough. Задача решена! Спасибо.

Sarmad 29.10.2018 12:10
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
3
636
0

Другие вопросы по теме