Страница 1 из 1
Закрыть доступ к редактированию GridView
Добавлено: 2017.07.10, 09:31
Introvert
Как закрыть доступ гостю к редактированию и удалению записей в GridView, если точнее доступ закрыт, нужно не выводить эти кнопки. Делаю
на сайте, а тут как? Нашел вывод кнопок:
Код: Выделить всё
['class' => 'yii\grid\ActionColumn',
'template' => '{view}{update}{delete}',
]
Re: Закрыть доступ к редактированию GridView
Добавлено: 2017.07.10, 12:31
samdark
Подменять template в зависимости от условия.
Re: Закрыть доступ к редактированию GridView
Добавлено: 2017.07.10, 13:32
Introvert
samdark писал(а): ↑2017.07.10, 12:31
Подменять template в зависимости от условия.
А как установить условие? если if то пишет ошибку syntax error, unexpected 'if' (T_IF)
Re: Закрыть доступ к редактированию GridView
Добавлено: 2017.07.10, 15:04
samdark
Код: Выделить всё
'template' => Yii::$app->user->isGuest ? '{view}' : '{view}{update}{delete}',
Re: Закрыть доступ к редактированию GridView
Добавлено: 2017.07.10, 16:24
Introvert
samdark писал(а): ↑2017.07.10, 15:04
Код: Выделить всё
'template' => Yii::$app->user->isGuest ? '{view}' : '{view}{update}{delete}',
Спасибо работает!) а как разобрать почему именно такая запись? Тыкните на документацию где написано
Re: Закрыть доступ к редактированию GridView
Добавлено: 2017.07.10, 16:30
Nex-Otaku
http://php.net/manual/ru/language.opera ... on.ternary
Похоже, вам ещё только предстоит выучить синтаксис PHP.
Re: Закрыть доступ к редактированию GridView
Добавлено: 2017.07.10, 16:39
Introvert
Re: Закрыть доступ к редактированию GridView
Добавлено: 2017.07.11, 18:07
Introvert
А если по сложнее, в гриде есть строчка 'filterModel' => $searchModel, поиск по полям, если закоментировать поиск не отображается, если сделать
Код: Выделить всё
'filterModel' => Yii::$app->user->isGuest ? '' : $searchModel,
Работает, но пустота остается, потому что нужно все вместе на условие проверять, всю строчку. А это массив, и вписать перед 'filterModel' проверку не выходит
Re: Закрыть доступ к редактированию GridView
Добавлено: 2017.07.11, 18:14
Nex-Otaku
Ну так заполните массив без этой строки. А потом по условию добавьте "filterModel".
Код: Выделить всё
$arr = [
'blablabla' => 'blabla',
....
];
if (!Yii::$app->user->isGuest) {
$arr['filterModel'] = $searchModel;
}
Re: Закрыть доступ к редактированию GridView
Добавлено: 2017.07.11, 18:28
Introvert
Nex-Otaku писал(а): ↑2017.07.11, 18:14
Ну так заполните массив без этой строки. А потом по условию добавьте "filterModel".
Код: Выделить всё
$arr = [
'blablabla' => 'blabla',
....
];
if (!Yii::$app->user->isGuest) {
$arr['filterModel'] = $searchModel;
}
Тогда примерно так, но не хочет добавлять в виджет массив с этим ключем, полностью второй виджет хочет выводить
Код: Выделить всё
if (!Yii::$app->user->isGuest) {
GridView::widget(['filterModel' => $searchModel]);
}
Re: Закрыть доступ к редактированию GridView
Добавлено: 2017.07.12, 07:10
Nex-Otaku
Вот так
Код: Выделить всё
$arr = [
'blablabla' => 'blabla',
....
];
if (!Yii::$app->user->isGuest) {
$arr['filterModel'] = $searchModel;
}
GridView::widget($arr);
Почитайте, что такое переменные и зачем они нужны.
Re: Закрыть доступ к редактированию GridView
Добавлено: 2017.07.12, 10:53
Introvert
Nex-Otaku писал(а): ↑2017.07.12, 07:10
Вот так
Код: Выделить всё
$arr = [
'blablabla' => 'blabla',
....
];
if (!Yii::$app->user->isGuest) {
$arr['filterModel'] = $searchModel;
}
GridView::widget($arr);
Почитайте, что такое переменные и зачем они нужны.
пасиб) не додумался в переменную записать все
Re: Закрыть доступ к редактированию GridView
Добавлено: 2017.07.12, 12:19
sosnovskiy
Introvert писал(а): ↑2017.07.12, 10:53
Nex-Otaku писал(а): ↑2017.07.12, 07:10
Вот так
Код: Выделить всё
$arr = [
'blablabla' => 'blabla',
....
];
if (!Yii::$app->user->isGuest) {
$arr['filterModel'] = $searchModel;
}
GridView::widget($arr);
Почитайте, что такое переменные и зачем они нужны.
пасиб) не додумался в переменную записать все
Страно. Вам один в один выше написали про переменную что бы вы не думали...