Использовать имя блога и идентификатор в URL, используя yii2
Мне нужно использовать blogname и id в URL Yii2, так как теперь это мой URL: - http://localhost/html/demo/web/site/blog/blogdetail?id=39
Я хочу изменить эту ссылку на: -
HTTP: // локальный / html / демо / веб / сайт / блог / blogdetail / 39 / ли-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 ответ
Решение
<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-]+>
Ваш слаг (Did-Facebook-Skew-The-2016) теперь должен совпадать.