Как написать правило URL в Yii framework?

<?php echo CHtml::link($value->title, array(Yii::app()->createUrl('forum/thread', array('id'=>$value->thread_id)))); ?>

у меня есть ссылка

форум/тема/2

в моих правилах urlManager 'thread/<id:\d+>' => 'forum/thread',

как изменить правило и метод createUrl?

createUrl('any-value/forum/thread', array('id'=>$value->thread_id))

чтобы войти в URL

форум/любое значение/поток/2 или форум/php-для-новичков/поток/2

Извините за мой английский, большое спасибо


person Dima    schedule 30.07.2013    source источник


Ответы (2)


Правило диспетчера URL должно выглядеть следующим образом:

'forum/<title:\w+>/thread/<id:\d+>' => 'forum/thread', //make sure this is listed first so it has priority
'thread/<id:\d+>' => 'forum/thread',

Тогда в вашем контроллере у вас будет это:

public function actionThread($id,$title=null) {
    //$title will contain title from url if sent
}
person Pitchinnate    schedule 30.07.2013

Попробуйте это: 'forum/any-value/thread/<id:\d+>' => 'any-value/forum/thread',

и с этим: createUrl('any-value/forum/thread', array('id'=>$value->thread_id)) Таким образом, вы должны получить forum/any-value/thread/2

это должно работать!

Но если вы находитесь внутри модуля с именем forum, вы должны сделать так:

'any-value/thread/<id:\d+>' => 'any-value/forum/thread',

и с этим: createUrl('any-value/forum/thread', array('id'=>$value->thread_id))

person Elbek    schedule 30.07.2013