【问题标题】:Cgridview generate pager bad linkCgridview 生成寻呼机坏链接
【发布时间】:2013-05-20 05:57:03
【问题描述】:

我的 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>

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

请帮帮我..谢谢

【问题讨论】:

    标签: php yii cgridview


    【解决方案1】:

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

    但是,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

    【讨论】:

      【解决方案2】:

      我认为 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']) 这对我有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多