我有使用Yii 1.x框架的CMS(内置)。它使用Bootstrap TbGridView小部件以表格格式显示带有分页的记录。
这些GridView视图具有下拉菜单,允许管理员用户对数据进行一些筛选。如下所示,使用$_GET变量设置模型属性。
$model->setAttributes($_GET[get_class($model)]);
因此,如下所示的$_GET字符串生成以下内容:
myapp.local/myapp/myuser/admin/ajax/myuser grid/myuser%5名字%5D//myuser%5姓氏%5D//My用户%5用户名%5D//My-user%5Year_id%5D/11/myuser_page/2
这将生成以下$_GET数组:
Array (
[ajax] => myuser-grid
[Myuser] =>
Array ( [firstname] => [surname] => [username] => [year_id] => 11 )
[Myuser_page] => 2 )
正如您所看到的,"Myuser"键包含一个数组(包括名字、姓氏等)
现在,由于某种原因,在我们CMS中的另一个模块上,$_GET变量的生成方式"似乎"相同。例如,由于某种未知原因,下面的url字符串以不同的方式返回$_GET变量。
myapp.local/myapp/shop/products/ajax/myuser grid/myuser%5名字%5D//myuser%5姓氏%5D//My用户%5用户名%5D//我用户%5Year_id%5D/11/myuser_page/2
这将生成以下$_GET阵列
Array (
[ajax] => myuser-grid
[Myuser[firstname]] => [Myuser[surname]] => [Myuser[username]] => [Myuser[year_id]] => 11
[Myuser_page] => 2 )
由于某些原因,我希望它看起来与上面的另一个数组完全相同(Myuser是数组格式)。
有人能解释为什么$_GET变量会有不同的表现吗?唯一的区别是一个来自我的myuser控制器,另一个来自shopProducts控制器。
有人能告诉我为什么会发生这种事吗??P.S我看不到任何手动操作$_GET变量的逻辑。
在我看来,这就像是一个url重写问题。您应该检查yii中的.htaccess文件和urlManager。