Yii UrlManager和多个Get参数

时间:2013-12-06 16:14:33

标签: php .htaccess url yii

我的Yii urlManager有问题。我正在使用路径格式,并希望传递多个get变量。网址看起来像这样:

/Yii/app/de/user/admin/id/5/test/hello 

我的.htaccess:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteBase /Yii/app/
RewriteRule ^(.*)$ index.php?/$1 [QSA,L]

我尝试使用urlManager,但它不适用于以下规则:

'rules' => array(
    '<language:\w+>/<controller:\w+>/<id:\d+>'=>'<controller>/view',
    '<language:\w+>/<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
    '<language:\w+>/<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
)

$ _GET应如下所示:

array(3) { 
    ["/de/user/admin"]=> string(0) ""
    ["id"]=> string(1) "5" 
    ["test"]=> string(5) "hello" 
    ["language"]=> string(2) "de" 
}

它可以为变量数量的get参数工作。例如:

如果使用ajax按CGridView排序,则参数数量不同。

由于

1 个答案:

答案 0 :(得分:2)

您不需要网址管理员。

您的变量将传递给以下操作:

www.yourdomain.com/yourController/yourAction?id=5&test=hello&language=de

这是你在你的控制器中的动作功能

public function yourAction($id, $test, $language){
  //$id is 5
  //$test is 'hello'
  //$language is 'de'
}