Lumen / Laravel - динамическое объединение произвольного числа и комбинации таблиц - PullRequest
0 голосов
/ 03 февраля 2020

Я строю базу данных, которая содержит информацию о нашем инвентаре компании. В зависимости от отдела, из которого приходит пользователь, он может по-разному смотреть на предметы из инвентаря. Например, отдел A может видеть MA C -адреса аппаратного обеспечения, в то время как отдел B видит проект, в котором в настоящее время используется оборудование.

Чтобы смоделировать это требование в нашей структуре БД, мы использование «Coretable», который содержит информацию, доступную для всех отделов, и «расширенных таблиц», ссылающихся на coretable, которые содержат информацию, доступную только для их связанного отдела.

Приложение будет оценивать роли пользователя, обращающегося к БД, и в зависимости от его ролей он будет динамически обращаться к таблицам, доступным через роли пользователей, и извлекать все данные.

Теперь мне нужно написать функцию внутри моего контроллера, которая может динамически объединять любое количество и комбинацию таблиц. Coretable всегда будет там, поэтому таблицы расширений будут присоединены к coretable.

Я использую люмен / laravel и его красноречивую модель. Чтобы определить, какие таблицы расширений должны быть объединены, мы работаем с уже существующим массивом таблиц / имен моделей. Я уже построил модель динамически, как это:

$namespace = '\\App\\';
$entity = $rangeOfTables[0];

$model = $namespace . $entity;

Я, конечно, мог бы использовать циклы для динамического генерирования любого количества моделей, однако это действительно не решает мою проблему, которую я действительно не знаю, как динамически построить фактический запрос с этим произвольным числом и комбинацией моделей для объединения друг с другом ^^

...