我遇到了Yii cgridview的问题..它工作正常,但我不知道它什么时候变成错误..当我用inspect元素检查时,我发现寻呼机为页面链接生成了一个错误的链接。这就是我点击下一个按钮时网页会出错的原因。
cgridview会生成这个错误的链接:
<a href="/gso/admin/userContact/index/admin%2FuserContact%2Findex//UserContact_page/2">2</a>
必须是:
<a href="/gso/admin/userContact/index/UserContact_page/2">2</a>
为什么会发生?他们复制了一些网址并使其出错:(..
请帮帮我..谢谢
答案 0 :(得分:2)
对我而言,很难找到您提供的信息的问题。
但是,Yii允许您定义一个类似于分页链接的路线。即,
'route'=>'YourController/Method'
代码将以
开头 $dataProvider = new CActiveDataProvider('Controller',
array
(
'pagination' => array
(
'pageSize' => 10,
'route'=>'YourController/Method' //This is your custom route
),
)
);
$this->render('index', array(
'dataProvider' => $dataProvider,
));
可能(我的猜测)你已经写了你的路线
'route'=>'userContact/index'
点击此链接可获取更多http://www.yiiframework.com/doc/api/1.1/CPagination#route-detail
答案 1 :(得分:0)
我认为Yii的CPagination课有一些错误。根据您的路由设置,它会将$ _GET数组附加到当前路径,如/ userContact / index。 CPagination将这些$ _GET变量作为$ this-&gt; createUrl($ route,$ params)中的参数传递,从而导致格式错误的网址。
解决方法是在调用寻呼机小部件之前取消设置$ _GET变量,如下所示:
unset( $_GET[Yii::app()->request->url] );
$this->widget('CLinkPager', array('pages'=>$pager));
我通常有一个类似http://example.com/file/index?page=1
的路径设置(这是控制器/操作的路径格式,但附加了$ _GET变量)所以我只是unset($_GET['/file/index'])
对我有效。