controller->pageTitle = 'Роли / групи'; use app\models\CmsRoles; use app\widgets\FormWidget; use app\widgets\TableWidget; TableWidget::widget([ 'top' => [ 'title' => 'Роли / групи', 'data' => [ 'index/dashboard' => 'Начало', 'user/admin' => 'Потребители' ] ], 'actions' => [ 'new' => 'Нова роля', 'edit' => 'Редакция на роля', 'delete' => 'Изтриване на роля' ], 'th' => [ '№' => 'c1 text-right', 'Наименование на роля' => 'c3', 'Описание на роля' => '', 'Бр. зададени права' => '' ], 'data' => CmsRoles::find()->loop([ 'id', function (CmsRoles $model) { return '' . $model->name . ''; }, 'description', function (CmsRoles $model) { return sizeof($model->getRightsIds()); } ], $_GET['p'] ?? 1, 20) ]); FormWidget::widget([ 'top' => [ 'title' => 'Нова роля/група', 'title_edit' => 'Редакция на роля/група', 'data' => [ 'index/dashboard' => 'Начало', 'user/admin' => 'Потребители', 'user/roles' => 'Роли / групи' ] ], 'writeView' => 'user/write/roles_w', 'model' => CmsRoles::class, 'validation' => function ($p) { if (empty($p->{'user_type_id'})) return ['user_type_id' => 'Моля, изберете тип потребител']; if (empty($p->{'name'})) return ['name' => 'Моля, въведете наименование на ролята']; if (CmsRoles::recordExists('name', $p->{'name'})) return ['name' => 'Тази роля вече е ваведена, моля използвайте друго наименование']; }, 'postService' => function ($p, CmsRoles $model) { $model->setPostDataToModel(); $model->save(); if (!isset($p->{'rights'})) $p->{'rights'} = []; $model->updateRights($p->{'rights'}); Yii::$app->flash('success', isset($_GET['id']) ? 'Записът е актуализиран успешно' : 'Записът е създадено успешно'); $model->smartRedirect(); } ]);