Cgridview生成寻呼机坏链接

时间:2013-05-20 05:57:03

标签: php yii cgridview

我遇到了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>

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

请帮帮我..谢谢

2 个答案:

答案 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'])对我有效。