Привет
Такая ситуация: необходим модуль новостей, у каждой новости должна быть категория — в одну модель все это не запихаешь, но это и не 2 разных модуля, то есть нам надо запихать в один модуль несколько моделей и контроллеров.
Было бы глупо, если бы это было бы невозможно, да и вообще, я, кажется, видел в каком-то из модулей структуру с несколькими моделями, но не очень втыкаю как это сделать и будут ли подводные камни.
Я правильно понимаю, что в данном случае, мне нужно построить что-то такое:
Будет файл с моделью Categories, будет файл с моделью News. В конфиге модуля мы подключим 2 этих модели. В плане контроллеров будет примерно тоже самое. CategoriesController и NewsController. В первом будем добавлять, удалять, изменять категории (просматривать не надо, нам не надо просматривать список контроллеров, кстати, в таком случае какой дефолтный route указать?). Во втором случае немного посложнее: удаление, изменение, предпросмотр (для админа), а так же просмотр всех новостей и просмотр полной новости (для юзера). Все это будет связано с админкой, в которой будут прописаны пути, которые будут вызывать нужные контроллеры и действия.
Описал как, по моему скромному мнению, все должно работать. Вот.
Вопросы:
Правильно ли я понимаю как и что мне нужно сделать? Я говорю в общем, про структуру.
Если да, то:
1. Для контроллера категорий какой дефолтный путь надо указать? Хотя стоп! Ведь мы указываем путь для модуля, а не для контроллера. В таком случае нам не надо запариваться с дефолтными путями для категорий, ибо дефолтный путь будет задан для всего модуля и это будет путь, который вызовет список новостей. Правильно?
2. Правильно ли будет так подключать эти модули в админке. Я полагал пути будут такими (для админки):
/admin/news/ (список новостей для администрирования)
/admin/news/edit/##
/admin/news/categories/ (список категорий для администрирования)
/admin/news/categories/add
В таком случае, в конфиге админ панели при настройке путей мне надо писать что-то такое:
Для пути news/edit/ вызовем контроллер новостей, edit action
Для пути news/categories/add вызовем контроллер категорий, add action
Как-то костыльно выглядит (некрасиво это писать полный путь много-много раз, воть), правильно ли я понимаю, что это нужно делать так?