Как обновить столбец имени элемента, используя идентификатор пользователя в таблице AuthAssignment Yii Framework

Я использую диспетчер авторизации (RBAC) в Yii Framework, и у меня возникла проблема. Я хочу обновить имя элемента столбца, используя идентификатор пользователя в таблице AuthAssignment . Я могу вставить в базу данных этот код: Yii::app()->authManager->assign($model->role,$model->id);, но я не знаю, как мне обновить эти данные в таблице AuthAssignment.


person Mahmut Aydın    schedule 26.10.2015    source источник
comment
просто вам нужно сгенерировать CRUD из AuthAssignment и модели и контроллера. Чем использовать данные обновления действия update.   -  person GAMITG    schedule 27.10.2015
comment
Ваш комментарий не ясен, пожалуйста, обновите ответ, если хотите показать свой код. и отформатируйте код правильно.   -  person scaisEdge    schedule 27.10.2015


Ответы (2)


Для AuthAssignment не предусмотрено действие обновления. Для обновления имени элемента столбца вы должны сначала «отозвать» свой элемент из данного графического интерфейса RBAC, а затем «назначить» обновленный элемент.

Дайте мне знать, если вы столкнетесь с дальнейшим запросом на то же самое.

person AddWeb Solution Pvt Ltd    schedule 27.10.2015

Я думаю, что в диспетчере аутентификации (RBAC) нет метода обновления. Поэтому мы должны использовать метод отзыва для удаления и метод назначения для вставки. Я использую следующий код в Usercontroller

public function assignRole($role,$id) { 
    $auth = Yii::app()->authManager;
    $items = $auth->getRoles($id);
    foreach ($items as $item) {
        $auth->revoke($item->name, $id);
    } 
    // assign new role to the user 
    $auth->assign($role, $id);
    $auth->save();
}

Затем я вызываю следующий код для вставки и обновления роли в таблицу

$this->assignRole($model->role,$model->id);
person Mahmut Aydın    schedule 27.10.2015