У меня на сайте будет галерея, поделенная на несколько категорий. Я собираюсь обрабатывать все категории одним экшеном - gallery.php. Чтобы сделать урлы красивыми, я пытаюсь настроить urlManager так, чтобы урлы вида mysite.com/gallery/nature выглядели как mysite.com/nature. Для этого я пытаюсь передавать GET параметр, обозначающий категорию к gallery:
Но таким образом GET почему-то не передается. В мануале я читал про подобное на примере get параметра "id", но в "route" я get параметра id почему-то не вижу:
У меня gallery - экшен контроллера site. Я не хочу делать отдельный контроллер галереи, потому что категории будут отличатся всего парой параметров, да и кроме отображения галереи он ничего делать не будет.
Насчет отдельного контроллера. Это сегодня у вас в контроллере один метод, а завтра потребуются действия list, view, update, create, delete, ajax… Так ведь можно всё в SiteController уместить, и это всё равно будет MVC. Если не хотите дублировать какой-то код - создавайте компоненты, действия-классы и т.п. Кстати, с проблемой с маршрутами вы столкнулись именно по той причине, что не добавили отдельный контроллер галереи, а с ним всё было бы легко и последовательно. Но если желаете делать по-своему - приятных вам мучений
Здесь контроллер site, а действие? actionAbout? Опять не ясно… Yii бы сделал такой url (если contact - значение параметра page): site/about/page/contact. Какой бы url вам хотелось видеть в итоге? Что плохого в контроллере AboutController, если это самостоятельный раздел сайта и он содержит подстраницы contact, history и т.д.? Его добавление никак не скажется на работе приложения. В небезызвестном расширении Yii-user есть отдельные контроллеры для логина/логаута, восстановления пароля и т.д., т.е. вся логика не сосредоточена в одном контроллере UserController. Я не говорю, что это расширение - образец для подражания, но иногда лучше не усложнять жизнь и себе, и другим