私の yii CGridview には 3 つの行があり、2 種類のユーザー ログインがあります。ユーザーの種類に応じて、3 つの行のうちの 1 つを非表示にする必要があります。助けてください。
3658 次
4 に答える
1
モデルに public static メソッドを追加します。たとえば、次のようにします。
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;
}
}
行のグリッドビューに追加します:
$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',
),
),
)
);
于 2013-04-02T05:31:11.883 に答える
1
次のような条件ステートメントを使用します。
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 データ プロバイダーでこのデータ プロバイダーを呼び出します。
于 2013-04-02T05:01:34.533 に答える