使用yii2在url中使用博客名称和ID

时间:2017-05-30 09:17:50

标签: php yii2 yii-url-manager

我需要在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]); ?>">

1 个答案:

答案 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)现在应该匹配。