Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 06.06.2017 17:11:41

Нужно, чтобы пользователь видел только свои экземпляры сущностей

Здравствуйте!

Схема приложения такая: имеются пользователи, которые создают кампании. У кампании есть зависимые сущности. Например, компания имеет офис, офис связан с заказом. Заказ связан с исполнителем, который напрямую связан с компанией.

Как правильно сделать так, чтобы авторизованный пользователь видел только свои экземпляры сущностей?
Например, вывести все заказы исполнителя такого-то.

Усложняет все тот момент, что сущностей много, все методы и взаимодействие уже прописано. Как решить этот вопрос с наименьшими временными потерями и не нарушить архитектуру?

Архитектура приложения простая:
контроллеры -> бизнес-слой -> репозитории -> модель

Не в сети

#2 07.06.2017 01:21:13

Re: Нужно, чтобы пользователь видел только свои экземпляры сущностей

Может я чего-то не понимаю , но по моему это делается стандартными запросами в моделях при помощи обычных отношений . Получаете пользователя внедрением его в метод либо через фасад Auth::user() а далее у вас есть полный доступ ко всем связанным таблицам данного пользователя и вы можете отфильтровать коллекцию как вам угодно и передать её в представление . Если проблема в том , что код никак не поменять , на ум приходит только global scope  https://laravel.com/docs/5.4/eloquent#global-scopes .

Не в сети

#3 07.06.2017 11:38:38

Re: Нужно, чтобы пользователь видел только свои экземпляры сущностей

Bender, спасибо за ответ!

Сейчас все решения, что у меня есть сводятся к одному: добавлять join к каждому запросу для получения нужного результат.
Если честно, думал, что есть более элегантные и "правильные" решения этому вопросу.

Спасибо за наводку, прочитаю так же про global scope.

Не в сети

Подвал раздела