Стилизация GridView

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Закрыто
domowdenis
Сообщения: 19
Зарегистрирован: 2018.12.24, 17:29

Стилизация GridView

Сообщение domowdenis » 2019.01.30, 17:16

Добрый день.

Хочу в зависимости от статуса пользователя выводить или не выводит кнопку в yii\grid\ActionColumn.

Код: Выделить всё

[
                'class' => 'yii\grid\ActionColumn',
                'template' => function($model){
                    if ($model->status == User::STATUS_DISABLE) {
                        return '{view} {update} {enable} {delete}';
                    }
                    else {
                        return '{view} {update} {disable} {delete}';
                    }
                    //return ($model->status==User::STATUS_DISABLE)?'{update} {delete}':'{view} {update} {delete}';
                },
                'buttons' => [
                    'disable' => function ($url, $model) {
                        return Html::a(
                            '<span class="glyphicon glyphicon-ban-circle"></span>',
                            $url,
                            [
                                'class' => '',
                                'title' => Yii::t('app', 'Заблокировать'),
                                'aria-label' => Yii::t('app', 'Заблокировать'),
                                'data'  => [
                                    'data-pjax'  => '0',
                                    'confirm'    => Yii::t('app', 'Вы уверены, что хотите заблокировать пользователя?'),
                                    'method'     => 'post',
                                ],
                            ]
                        );
                    },
                    'enable' => function ($url, $model) {
                        return Html::a(
                            '<span class="glyphicon glyphicon-ok-circle"></span>',
                            $url,
                            [
                                'class' => '',
                                'title' => Yii::t('app', 'Разблокировать'),
                                'aria-label' => Yii::t('app', 'Разблокировать'),
                                'data'  => [
                                    'data-pjax'  => '0',
                                    'confirm'    => Yii::t('app', 'Вы уверены, что хотите расблокировать пользователя?'),
                                    'method'     => 'post',
                                ],
                            ]
                        );
                    },
                    'delete' => function ($url, $model) {
                        return Html::a(
                            '<span class="glyphicon glyphicon-remove"></span>',
                            $url,
                            [
                                'class' => '',
                                'title' => Yii::t('app', 'Удалить'),
                                'aria-label' => Yii::t('app', 'Удалить'),
                                'data'  => [
                                    'data-pjax'  => '0',
                                    'confirm'    => Yii::t('app', 'Вы уверены, что хотите удалить пользователя?'),
                                    'method'     => 'post',
                                ],
                            ]
                        );
                    },
                ],

Т.е. конкретно меня интересует - что не так в этом блоке?

Код: Выделить всё

                'template' => function($model){
                    if ($model->status == User::STATUS_DISABLE) {
                        return '{view} {update} {enable} {delete}';
                    }
                    else {
                        return '{view} {update} {disable} {delete}';
                    }
                    //return ($model->status==User::STATUS_DISABLE)?'{update} {delete}':'{view} {update} {delete}';
                },

Получаю такую ошибку http://prntscr.com/mea210

Откуда там обьект появился - не понимаю..Стринг же?

urichalex
Сообщения: 971
Зарегистрирован: 2015.08.07, 11:03

Re: Стилизация GridView

Сообщение urichalex » 2019.01.30, 20:40

template может принимать только текст, на сколько я помню. В template пропишите все кнопки, а уже в самих кнопках делайте проверку. Если статус нужный - выводим кнопку, иначе возвращаем null

domowdenis
Сообщения: 19
Зарегистрирован: 2018.12.24, 17:29

Re: Стилизация GridView

Сообщение domowdenis » 2019.01.31, 15:01

Да. так работает, спс.

Закрыто