0

私は yii を初めて使用し、DB テーブルのアクティブなフラグ フィールドに応じて zii.widgets.grid.CGridView でデータをフィルター処理できません。アクティブフラグが 0 のデータのみを表示したい。

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'member-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
    'id',
    'f_name',
    'l_name',
    'dob',
    'gender',
    'location',
    'email',
    'active',
    array(
        'class'=>'CButtonColumn',
    ),
),

));

4

1 に答える 1

3

モデルの search() メソッドで、 CDbCriteriaをカスタマイズする必要があります。

以下を追加する必要があります。

$criteria->compare('active', 1);

さらに高度にしたい場合は、名前付きスコープを作成し、次のように search() メソッドで ActiveDataProvider を定義するときにそれを使用できます。

new CActiveDataProvider(Member::model()->active(),.....);

スコープは次のようになります。

public function active()
{
    return array(
            'condition'=>$this->getTableAlias(false, false).'.active =1',
    );
}
于 2012-07-07T11:46:33.017 に答える