使用 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) 现在应该匹配了。