2013-04-24 66 views
1

我正在开发一个网站,其中我有事件类别和事件的详细信息。所以这意味着首先我要使用事件类别表来显示所有事件,并且当用户选择特定事件时,将显示该类别下的所有事件。现在,如果用户选择信息任何情况下,url必须象下面这样:Yii:如何通过URL/slug而不是ID在另一个模型中使用一个模型?

如果用户将选择任何事件类别说,“音乐”,则:

www.domain.com/category/music/

当用户将选择在音乐类别的事件说 '明星夜',那么:

www.domain.com/category/music/event/star-night

我该如何完成这项任务?

回答

2

在你的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)); 
相关问题