我正在开发一个网站,其中包含事件类别和事件详细信息。这意味着首先我想使用事件类别表来显示所有事件,当用户选择特定事件时,将显示该类别下的所有事件。现在,如果用户将选择任何事件以获取详细信息,则 URL 必须如下所示:
如果用户选择任何事件类别说“音乐”,那么:
www.domain.com/category/music/
当用户在音乐类别中选择事件时说“星夜”,那么:
www.domain.com/category/music/event/star-night
我怎样才能完成这项任务?
在您的 config/main.php 中:
// uncomment the following to enable URLs in path-format
'urlManager' => array(
'rules' => array(
// other rules...
'category/<category>/<controller:\w+>/<slug>' => '<controller>/view',
事件/或任何控制器将处理单个项目的视图。
在每个控制器中,让视图接受 slug/title 字符串而不是通常的 id。
public function actionView($slug) {
$model = $this->loadModel($slug);
public function loadModel($slug) {
$model = Event::model()->find('slug=:slug', array(':slug' => $slug));