我正在使用yii2,我希望网址是这样的: 例如:backend.dev/ads/browse/city/london
我的代码是这样的(backend / config / main.php):
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'<controller:\w+>/<city:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<city:\d+>' =>
'<controller>/<action>'
],
],
我的链接是:
echo Html::a('<h4>'.$cities[$i].'</h4>', ['/ads/browse',
'city'=>$cities[$i]], ['class'=>'btn buttonCity']);
但输出是这样的:backend.dev/ads/browse?city=london 我想要 ?消失,请帮帮我。
答案 0 :(得分:1)
\d+
表示它预计会有数字,但您提供了london
。
更改
'<controller:\w+>/<action:\w+>/<city:\d+>' => '<controller>/<action>'
到
'<controller:\w+>/<action:\w+>/<city:\w+>' => '<controller>/<action>'
答案 1 :(得分:0)
感谢 @Bizely 我必须做出这些改变:
'<controller:\w+>/<action:\w+>/<city:\d+>' => '<controller>/<action>'
更改为:
'<controller:\w+>/<action:\w+>/<city:\w+>' => '<controller>/<action>'
我的粗心!