Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用yii2中的更新url重写url_Php_Url Rewriting_Yii2 - Fatal编程技术网

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