私の Yii アプリケーションでは、Yii のルールurlManager
を次のように定義しました。
'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/paris の代わりに izletiste/show アクションを呼び出す必要があることを認識しないのか、そしてこれを修正する方法は?