0

次のようないくつかの URL にアクセス/作成できるようにしたい:

http://mywebsite.com/player/Name-Surname-100/

ビューでは、これを使用してリンクが正しく生成されます。

$this->createUrl('player/view', array('id' => $player->id, 'slug' => $player->slug))

main.php 構成ファイルで、次のルールを定義しました。

'player/<slug:\w+>-<id:\d+>' => 'ui/player/view',

しかし成功しませんでした (次のエラー メッセージが表示されます: Unable to resolve the request "player/Name-Surname-100". )。私の「プレーヤー」モデル(テーブル)には、「スラッグ」プロパティ(列)もあります。

編集:

http://mywebsite.com/player/Name-Surname-anotherName-100/ //not working
http://mywebsite.com/player/Name_Surname_anotherName-100/ //it works!!
4

1 に答える 1

0

urlManager ルールには、スラッグと ID の間の区切り文字として「-」があります。

Larry の urlManager ルールを使用して、URL で「-」を許可します。

'player/<slug:[\w\-]+>-<id:\d+>' => 'ui/player/view'

別の方法は、スラッグ内のすべての「-」を置き換えることです。

$this->createUrl('player/view', array('id' => $player->id, 'slug' => str_replace('-','_'$player->slug));
于 2013-07-26T14:29:57.160 に答える