Код: Выделить всё
Database Exception – yii\db\Exception
SQLSTATE[HY000]: General error: 1364 Field 'role' doesn't have a default value
The SQL being executed was: INSERT INTO.............
и тут приписать вместо role status?
Код: Выделить всё
<?php
namespace common\components\rbac;
use Yii;
use yii\rbac\Rule;
use yii\helpers\ArrayHelper;
use common\models\User;
class UserRoleRule extends Rule
{
public $name = 'userRole';
public function execute($user, $item, $params)
{
//Получаем массив пользователя из базы
$user = ArrayHelper::getValue($params, 'user', User::findOne($user));
if ($user) {
$role = $user->role; //Значение из поля role базы данных
if ($item->name === 'admin') {
return $role == User::ROLE_ADMIN;
} elseif ($item->name === 'moder') {
//moder является потомком admin, который получает его права
return $role == User::ROLE_ADMIN || $role == User::ROLE_MODER;
}
elseif ($item->name === 'user') {
return $role == User::ROLE_ADMIN || $role == User::ROLE_MODER
|| $role == User::ROLE_USER;
}
}
return false;
}
}