Сделайте контроллер indexcontroller в yii

Я планирую сделать блог в yii. У меня есть таблица с именем article и соответствующая ей модель view, контроллер генерируется с помощью gii. Я хочу, чтобы сообщения отображались на домашней странице, поэтому я установил

defaultController='article'

Несмотря на то, что сообщения отображаются на главной странице, когда я нажимаю на заголовок для дополнительной информации, в URL все еще есть имя контроллера, как

www.yiisite.com/article/1

Поэтому я хочу, чтобы URL был таким:

www.yiisite.com/1

Я хочу скрыть имя контроллера в своем URL.

Каков обычный метод для его реализации?

Я хотел сделать URL-адрес дружественным, поэтому использовал следующее правило:

'/<year:\d{4}>/<month:\d{2}/<vanity:[\w\W]+>'=>'article/view' 

Теперь в loadmodel() в ArticleController я хочу изменить findByPk($id), чтобы получать данные, используя год, месяц и уникальный URL-адрес тщеславия. Таким образом, я получу URL-адрес, как www.yiisite.com/2013/07/vanity-url-article.

Этот подход хорошо, верно?

1 ответ

Обновить urlManager на сайте конфигурации

return array(
 'name'=>'My Project',
 'defaultController'=>'article',
 'components'=>array(
   'urlManager'=>array(
     'urlFormat'=>'path',
     'caseSensitive' =>true,
     'showScriptName'=>false,
     //'useStrictParsing'=>true,
     'rules'=>array(
       '<action:[\w\-]+>' => 'article/<action>',
     ),
   ),
  ),
);
Другие вопросы по тегам