簡體   English   中英

Yii1 CGridView(Yii-Booster):如何更改TbGridView中的過濾鍵(filterVal)(基於CGridView)?

[英]Yii1 CGridView(Yii-Booster): How to change filter key(filterVal) in TbGridView(based on CGridView)?

我正在使用yii-booster(4.0.1)TbGridView(擴展CGridView)並需要更改_REQUEST($ _ POST,$ _GET)中的過濾器變量名稱以獲取過濾器功能。 在我的網格中,我有過濾功能,當我在過濾器輸入中輸入一些單詞后按Enter鍵時,將為服務器發送ajax請求。 在$ _REQUEST的請求中我有:

array
(
    'page' => '1'
    'wsi_it_model_Asset' => array
    (
        'user' => 'eghlima'
        'createdAt' => ''
        'serial' => ''
        'brand' => ''
        'model' => ''
        'assetType' => ''
        'assigned' => ''
        'location' => ''
        'status' => ''
    )
)

我的問題是如何在由CGridView創建的請求更改wsi_it_model_Asset。 我知道我應該在創建dataProvider時通過CActiveDataProvider中的參數執行此操作,但我找不到它。

提前致謝。

1月24日更新
我從另一個項目中找到了我的代碼,因為你可以看到我可以更改sortpaginationkey ,我需要看起來像過濾密鑰;

return new \CActiveDataProvider($this->applicant, array(
            'criteria' => $criteria,
            'pagination' => array(
                'pageVar' => 'p', // <<<<< pagination var
                'pageSize' => 20,
            ),
            'sort' => array(
                'sortVar' => 's', // <<<<< sorting var
                'defaultOrder' => 't.firstName ASC',
                'attributes' => array(
                    '*'
                )

            ),
        ));

因此,對於分頁,從客戶端發布到服務器的請求將是:

array
(
    'p' => '7' // <<<<<< page changed to `p`
    'wsi_it_model_Asset' => array
    (
        'user' => 'eghlima'
        'createdAt' => ''
        'serial' => ''
        'brand' => ''
        'model' => ''
        'assetType' => ''
        'assigned' => ''
        'location' => ''
        'status' => ''
    )
)

我不確定你的意思,但我試一試。

$this->widget('zii.widgets.grid.CGridView', array(
    'id' => 'my-grid',
    'dataProvider' => $model->search(),
    'filter' => $model,
    'columns' => array(
        array(
            'value' => '$data->theValue',
            'filter' => CHtml::activeTextField($model, 'myWish'),
        ),
    )
));

然后在您的模型中添加虛擬屬性

public function getMyWish()
   {
      return 'Your dream answere';
   }

並在你的$ model-> search()中添加:

$criteria->compare('$data->theValue', $this->myWish,true);

像這樣的東西檢查一個關於虛擬屬性的非常好的教程: http//www.yiiframework.com/wiki/167/understanding-virtual-attributes-and-get-set-methods/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM