1

Yii cgridview 有问题。它工作正常,但我不知道它什么时候会出错。当我检查检查元素时,我发现分页器为页面链接生成了一个错误链接。这就是为什么当我单击下一步按钮时网络会出错。

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>

为什么会发生?他们复制了一些网址并使其出错:(..

请帮助我..谢谢

4

2 回答 2

2

对我来说,您提供的信息很难找出问题所在。

但是,Yii 允许你定义一个类似于分页链接的路由。IE,

    '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

于 2013-05-20T06:54:16.733 回答
0

我认为 Yii 的 CPagination 类有一些错误。根据您的路线设置,它将在 $_GET 数组中附加您当前的路径,例如 /userContact/index。CPagination 反过来将这些 $_GET 变量作为参数传递到 $this->createUrl($route, $params) 中,从而导致 url 格式错误。

一种解决方法是在调用寻呼机小部件之前取消设置该 $_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'])对我有用。

于 2013-09-20T17:29:09.510 回答