Php 用yii2中的更新url重写url
如何改变这一点:Php 用yii2中的更新url重写url,php,url-rewriting,yii2,Php,Url Rewriting,Yii2,如何改变这一点: site/faq 为此: site/faq?festival=nouroz98&id=100000&data=information 这是节日规则课 class FestivalRule implements UrlRuleInterface { public $pattern; public $route; public function createUrl($manager, $route, $params) { return
site/faq
为此:
site/faq?festival=nouroz98&id=100000&data=information
这是节日规则课
class FestivalRule implements UrlRuleInterface
{
public $pattern;
public $route;
public function createUrl($manager, $route, $params)
{
return [$route, $params];
}
public function parseRequest($manager, $request)
{
if(!empty($request->getQueryParams())){
if($request->getPathInfo() == 'site/faq'){
return [
'site/faq',
$request->getQueryParams()
];
}
}else{
return [
'site/faq',
[
'festival' => 'nouroze99',
'id' => '10000',
'data' => 'from db',
]
];
}
return false;
}
}
这是urlmanager配置:
'rules' => [
[
'class' => 'app\components\FestivalRule',
'pattern' => 'site/faq/<festival:\w+>/<id:\d+>/<data:\w+>',
'route' => 'site/faq',
],
“规则”=>[
[
“类”=>“应用程序\组件\节日规则”,
“模式”=>“站点/常见问题解答//”,
“路由”=>“站点/常见问题”,
],
我想如果没有任何参数的URL请求,我改变参数,但我不能把参数在URL
所有参数都已发送,但我也希望更改url(参数显示在url中)
您应该查看文档和现有实现(并且)-您的
FestivalRule
没有任何意义。createUrl()
应该返回URL(作为字符串)或false,而不是数组。在parseRequest()中调用它
不正确。@rob006你说得对!问题已更新我也没有使用createUrl
,但问题仍然存在。我传递了要查看的参数,但我想在URL中显示它们,如site/faq?festival=nouroz99&id=1000&data=from+db
或site/faq/nouroz99/1000/from+db