однометодные контроллеры.
Есть 2 роли: админ и юзер.
Суть в том, что на /books для юзера должна выводиться одна вьюха, а на /admin/books другая. Причем с разными наборами данных, которые передаются в них из контроллера.
Индекс контроллер для книг один
Мне нужно на оба раута вешать один контроллер, и внутри него делать 2 логики, в зависимости от того, какая роль доступа у вызывающего его пользователя?
Или делать другой контроллер, чтобы было 2 "индекса" (условно userindex и adminindex), и вешать каждый на свой раут?
Или какой-то адекватный вариант есть?
на 2
Я бы вешал на один контроллер, но у меня довод есть, связанный с моей системой. Я очень быстро ушёл от классической схемы user+admin, у меня десяток ролей уже. Плюс, есть пользователи, которые имеют и то, и то (в моём случае trainer, curator, pupil и т.п.), там ненаразделяешься.
Вообще, делаю гость-юзер-админ. Время жмёт, проект учебный, может гостя уберу. Тогда придётся логиниться чтоб зайти в книжный магазин. А оставить гостя, убрав юзера тоже нельзя так как хочу комментарий прикрутить. Вообще, конечно, больше от требований проекта зависит, чем от личных предпочтений. Хотя, может это только на начальном уровне, а по мере роста сложности, уже будет где развернуться, но это доводы
Да это всё в процессе меняется) роут из одной миддлвари достал, в другую запихнул. Проблема, конечно, только с рефакторингом структуры контроллеров. Но тут как сварганишь, так и получится =) если роли реально не пересекаются и их мало, то лучше разделить, наверное, чтобы не было ненужных ифов и свичей
у тебя должно быть 2 контролера, но работать они будет например с одним сервис классом, который в зависимости от роли будет отадавать чуть разный набор данных
Обсуждают сегодня