使用 yii2 在 url 中使用博客名称和 ID
use blog name and id in url using yii2
我需要在 Yii2 的 url 上使用 blogname 和 id,就像现在我的 url :-
http://localhost/html/demo/web/site/blog/blogdetail?id=39
我想将此 link 修改为:-
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>',
),
这是我的 link:-
<a href="<?php echo Yii::$app->urlManager->createUrl([$blogid.'/'.$model->title]); ?>">
<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 和 name)会自动传递给操作。
编辑:
如果您对参数类型有疑问,可以更改
<name:\w+>
和
<name:[\w-]+>
你的 slug (Did-Facebook-Skew-The-2016) 现在应该匹配了。
我需要在 Yii2 的 url 上使用 blogname 和 id,就像现在我的 url :- http://localhost/html/demo/web/site/blog/blogdetail?id=39
我想将此 link 修改为:-
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>',
),
这是我的 link:-
<a href="<?php echo Yii::$app->urlManager->createUrl([$blogid.'/'.$model->title]); ?>">
<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 和 name)会自动传递给操作。
编辑: 如果您对参数类型有疑问,可以更改
<name:\w+>
和
<name:[\w-]+>
你的 slug (Did-Facebook-Skew-The-2016) 现在应该匹配了。