Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Здравствуйте!
Схема приложения такая: имеются пользователи, которые создают кампании. У кампании есть зависимые сущности. Например, компания имеет офис, офис связан с заказом. Заказ связан с исполнителем, который напрямую связан с компанией.
Как правильно сделать так, чтобы авторизованный пользователь видел только свои экземпляры сущностей?
Например, вывести все заказы исполнителя такого-то.
Усложняет все тот момент, что сущностей много, все методы и взаимодействие уже прописано. Как решить этот вопрос с наименьшими временными потерями и не нарушить архитектуру?
Архитектура приложения простая:
контроллеры -> бизнес-слой -> репозитории -> модель
Не в сети
Может я чего-то не понимаю , но по моему это делается стандартными запросами в моделях при помощи обычных отношений . Получаете пользователя внедрением его в метод либо через фасад Auth::user() а далее у вас есть полный доступ ко всем связанным таблицам данного пользователя и вы можете отфильтровать коллекцию как вам угодно и передать её в представление . Если проблема в том , что код никак не поменять , на ум приходит только global scope https://laravel.com/docs/5.4/eloquent#global-scopes .
Не в сети
Bender, спасибо за ответ!
Сейчас все решения, что у меня есть сводятся к одному: добавлять join к каждому запросу для получения нужного результат.
Если честно, думал, что есть более элегантные и "правильные" решения этому вопросу.
Спасибо за наводку, прочитаю так же про global scope.
Не в сети