Yii:如何通过URL / slug而不是ID在另一个模型中使用一个模型?

时间:2013-04-24 03:35:07

标签: php yii

我正在开发一个网站,其中包含活动类别和活动详情。这意味着首先我想使用事件类别表来显示所有事件,当用户选择特定事件时,将显示该类别下的所有事件。现在,如果用户将选择任何事件以获取详细信息,则网址必须如下所示:

如果用户选择任何类别的音乐'音乐',则:

  

www.domain.com/category/music /

当用户选择音乐类别中的活动时,请说“星夜”'然后:

  

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

我该如何完成这项任务?

1 个答案:

答案 0 :(得分: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));