2016-01-30 2 views
0

Я использую YII в первый раз, и мне просто нужны некоторые общие мнения.Как вы относитесь к интерфейсу/backend в YII?

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

Создал бы один пользовательский контроллер и использовал бы это в обоих представлениях, или вы бы создали UserController со своими собственными представлениями и AdminUserController со своими собственными представлениями?

+0

Изучите подход, используемый здесь: https://github.com/trntv/yii2-starter-kit/ – crafter

+0

Создайте отдельный контроллер, иначе вам придется поставить дополнительные проверки безопасности в свой контроллер. –

ответ

1

Возможно, вам не обязательно обязательно воссоздать модуль во всех местах. Вы можете просто поместить код модуля в общую папку.

1) Если конфигурация вашего модуля такая же, как для интерфейса, так и для бэкэнд - вы можете зарегистрировать свой модуль в общем/config/main.php. Это должно быть доступно как в интерфейсе, так и в бэкэнд.

2) Если конфигурация вашего модуля отличается как для внешнего интерфейса, так и для внутреннего сервера, вы можете зарегистрировать свой модуль отдельно в интерфейсе/config/main.php и backend/config/main.php.

Ссылка

0

Обычно в расширенном применении yii2 у вас есть 3 папки (внешний интерфейс, базовая, общая), которые вы можете использовать для хранения всех моделей , контроллеры, виды и т. д.

Если нам нужна одна пользовательская модель как для бэкэнд, так и для интерфейсных частей приложения, нам необходимо сохранить эту модель в общей папке. Это даст вам возможность получить все данные в интерфейсе и бэкэнд из одной общей таблицы. В самой модели вам нужно написать несколько методов, которые вы будете использовать только на бэкэнд (например, поиск по некоторым параметрам) и frontend (например, голосование за комментарии пользователя и т. Д.).

Вообще у меня есть разные контроллеры для бэкэнд и интерфейса (то же самое для просмотров) и общие модели для обоих.

0

с помощью yii2 advanced вы можете разместить общие функции в @common, чтобы управлять своим контроллером или моделью или что-то еще.

затем внутри @backend или @frontend вы можете расширить классы из того, что находится внутри @common, и добавить определенные функции, которые отвечают вашим потребностям.

для пользовательских функций, Я предлагаю использовать расширение dektrium/yii2-user, я использовал его в нескольких проектах, и это может сэкономить ваше время. Это хорошо документировано.

попробуйте использовать.

Смежные вопросы