2013-05-20 90 views
1

我有一個Yii cgridview的問題..它工作正常,但我不知道什麼時候它變成了錯誤..當我檢查與檢查元素,我發現傳呼機生成一個壞鏈接爲頁面鏈接。這就是爲什麼當我點擊下一個按鈕時,網絡會出錯。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> 

它爲什麼會發生?他們重複某些URL,並使其錯誤:(..

請幫我..謝謝

回答

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

0

我想的Yii的CPagination類有一些錯誤。根據您的路由設置,它會將$ _GET數組附加到當前路徑(如/ userContact/index)。 CPagination在$ this-> createUrl($ route,$ params)中傳遞這些$ _GET變量作爲參數,導致格式不正確的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'])這對我很有用。