簡體   English   中英

Yii CGridview隱藏行

[英]Yii CGridview hide rows

我的yii CGridview中有三行,並且有兩種類型的用戶登錄。我必須隱藏三行中的一行,具體取決於用戶的類型。請幫助。

使用這樣的條件語句:

public function newsearch()
{
    $id= Yii::app()->user->id;
    if($id = Your conditon){
        $criteria=new CDbCriteria;

        $criteria->compare('id',$this->id);
        Your Criteria to display
    } else {
        $criteria=new CDbCriteria;

        $criteria->compare('id',$this->id);
        Your Criteria to display
    }
    return new CActiveDataProvider($this, array(
        'criteria'=>$criteria,
    ));
}

並在GridView數據提供程序中調用此數據提供程序。

在您的模型中添加公共靜態方法,例如:

class Post extends CActiveRecord {

    public function tableName() {

        return 'posts';
    }

    public function rules() {

        return array();
    }

    public function attributeLabels() {

        return array();
    }

...

    public static function rulesUser() {
        if ( Yii::app()->user->id = 1 ) {
            return True;
        } else {
            return False;
    }  
}

在gridview中添加行:

$this->widget('zii.widgets.grid.CGridView', 
    array(
'id' => 'posts-grid',
'dataProvider' => $model->search(),
'filter' => $model,
'emptyText' => '',
'columns' => array(
        'id',
        'title',
        'post',
        'date_create',
                    array(
                    'name' => 'status',
                    'visible' => Posts::rulesUser(),
                     )
        array(
        'class' => 'CButtonColumn',
        ),
    ),
    )
);

或添加模型

public $visible = True;

在你搜索添加if或切換

public function search()
{
$criteria = new CDbCriteria;
     ...
    if (any if){
$this->visible = 1;
    }
return new CActiveDataProvider($this, array(
        'criteria' => $criteria,
    ));
}

在你的gridview中

...

array(              
'name'     => 'value',
'visible'=>$model->visible,
)

...

我通過如下調整CDbCriteria來解決了這個任務,

if(!Yii::app()->session["admin"])
{
   $criteria->condition='t.unique_id!="i-8874c6e3"';
} 

謝謝大家。

暫無
暫無

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

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