У меня три строки в моем yii CGridview и два типа логинов пользователей. Мне нужно скрыть одну из трех строк в зависимости от типа пользователя. Пожалуйста, помогите.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,
));
}
И позовите эту DataProvider в поставщике данных 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',
),
),
)
);
Вы можете объяснить это немного больше? –
Да, я редактирую ответ. –
Я должен добавить, что у вас есть опечатка .. is 'if (Yii :: app() -> user-> id == 1) {' .. еще раз спасибо –
или добавить в модель
public $visible = True;
в поиске добавить, если переключатель или
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"';
}
Спасибо всем.
- 1. Как скрыть фильтр cgridview с Yii?
- 2. Yii cgridview
- 3. Yii CGridView Filter
- 4. Yii: CGridView - две строки из родительской таблицы
- 5. вставки статической первой строки в cgridview Yii
- 6. Cgridview выбранной строки значение столбца в Yii
- 7. Скрытие столбца в YII CGridView
- 8. yii - создать вложенный cgridview
- 9. Yii - CGridview проблема производительности
- 10. Yii CGridview Filter Datepicker
- 11. YII CGridView ошибки
- 12. Yii CGridView - Пользовательские столбцы
- 13. yii cgridview dropdownlist value
- 14. Yii - CGridView ActiveRecord отношение
- 15. Yii CGridView обновление
- 16. Yii DatePicker CGridView date
- 17. yii CGridView диапазон дат
- 18. yii Начальная сортировка CGridView
- 19. отображение Cgridview в yii
- 20. Yii cgridview ajaxUpdate свойства
- 21. Yii CGridView DataProvider
- 22. Печать CGridView - Yii
- 23. Yii CGridView pagination
- 24. Динамические колонки Yii Cgridview
- 25. Yii CGridView multiple dataProvider
- 26. Yii CGridview не фильтрует
- 27. Yii CGridView пользовательской сноска
- 28. Yii - CGridView boolean date range
- 29. Изменение CGridView htmlOptions of Yii
- 30. Переполнение строк в CGridView Yii
Данные для вида сетки обычно поступают от поставщика данных. Измените код, который создает поставщик данных или его источник данных, чтобы вести себя по-разному в зависимости от типа входа. – DCoder