Я строю базу данных, которая содержит информацию о нашем инвентаре компании. В зависимости от отдела, из которого приходит пользователь, он может по-разному смотреть на предметы из инвентаря. Например, отдел A может видеть MA C -адреса аппаратного обеспечения, в то время как отдел B видит проект, в котором в настоящее время используется оборудование.
Чтобы смоделировать это требование в нашей структуре БД, мы использование «Coretable», который содержит информацию, доступную для всех отделов, и «расширенных таблиц», ссылающихся на coretable, которые содержат информацию, доступную только для их связанного отдела.
Приложение будет оценивать роли пользователя, обращающегося к БД, и в зависимости от его ролей он будет динамически обращаться к таблицам, доступным через роли пользователей, и извлекать все данные.
Теперь мне нужно написать функцию внутри моего контроллера, которая может динамически объединять любое количество и комбинацию таблиц. Coretable всегда будет там, поэтому таблицы расширений будут присоединены к coretable.
Я использую люмен / laravel и его красноречивую модель. Чтобы определить, какие таблицы расширений должны быть объединены, мы работаем с уже существующим массивом таблиц / имен моделей. Я уже построил модель динамически, как это:
$namespace = '\\App\\';
$entity = $rangeOfTables[0];
$model = $namespace . $entity;
Я, конечно, мог бы использовать циклы для динамического генерирования любого количества моделей, однако это действительно не решает мою проблему, которую я действительно не знаю, как динамически построить фактический запрос с этим произвольным числом и комбинацией моделей для объединения друг с другом ^^