我需要在Yii2上的网址上使用blogname和id,就像这是我的网址: - http://localhost/html/demo/web/site/blog/blogdetail?id=39
我想将此链接修改为: -
http://localhost/html/demo/web/site/blog/blogdetail/39/Did-Facebook-Skew-The-2016
这是我的博客名称" Did-Facebook-Skew-The-2016"
为此我正在使用该代码: - web.php文件。
'rules' => array(
'blog/blogdetail/<id:\w+>/<name:\w+>'=>'site/blog/blogdetail/id/<id>/name/<name>/',
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
并且在视图中这是我的链接: -
<a href="<?php echo Yii::$app->urlManager->createUrl([$blogid.'/'.$model->title]); ?>">
答案 0 :(得分:0)
<a href="<?php echo Yii::$app->urlManager->createUrl(['site/blog/blogdetail', 'id'=>$blogid, 'name'=>$model->title]); ?>">
作为旁注,您可以从
更改路线'blog/blogdetail/<id:\w+>/<name:\w+>'=>'site/blog/blogdetail/id/<id>/name/<name>/',
到
'blog/blogdetail/<id:\w+>/<name:\w+>'=>'site/blog/blogdetail/',
命名参数(在这种情况下为id和名称)会自动传递给操作。
编辑: 如果您对params类型有问题,可以更改
<name:\w+>
与
<name:[\w-]+>
你的slu((Facebook-Skew-The-2016)现在应该匹配。