Ссылки Yii не работают должным образом

В моем приложении Yii я определил правила в urlManager Yii следующим образом:

'urlManager'=>array(
            'urlFormat'=>'path',
            'showScriptName'=>false,
            'rules'=>array(
                'izletiste/<grad:\.*?>/<naziv:.*?>/<id:d+>'=>'izletiste/show',
                '<controller:\w+>/<id:\d+>'=>'<controller>/view',
                '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
                '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
            ),
        ),

Теперь, когда я хочу создать ссылку, я использую следующую конструкцию:

<?php echo CHtml::link(CHtml::encode($izletiste->nazivIzletista),array("izletiste/show","grad"=>"Paris","naziv"=>"Some text", "id"=>$id)); ?>

URL-адрес, который я получаю, следующий:

http://mywebsite.com/izletiste/Paris/Some+text/21

Но когда я нажимаю на ссылку, я получаю следующую ошибку:

Ошибка 404

Системе не удалось найти запрошенное действие «Париж».

Мой вопрос: почему это происходит, почему Yii не распознает, что действие izletiste/show должно называться вместо izletiste/paris, и как это исправить?


person MrD    schedule 28.01.2015    source источник
comment
Что вы подразумеваете под град=›paris, просто неважно, Париж это или Париж!   -  person MrD    schedule 29.01.2015
comment
Я только что понял, что регулярное выражение неверно в \.*? и d+. Это должно быть <grad:\w+> и <id:\d+> соответственно. Чего вы пытались добиться, используя <grad:\.*?>?   -  person Samuel Liew♦    schedule 29.01.2015
comment
Да, это была вторая ошибка. Спасибо, что указали на это!   -  person MrD    schedule 29.01.2015


Ответы (1)


Попробуйте изменить первое правило, как здесь:

'izletiste/<grad>/<naziv>/<id:\d+>'=>'izletiste/show'
person hamed    schedule 29.01.2015
comment
В чем разница между ‹grad:\.*?› и ‹grad›? - person MrD; 29.01.2015