Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Yii 如何在表Authi框架中使用用户id更新itemname列_Yii_Rbac - Fatal编程技术网

Yii 如何在表Authi框架中使用用户id更新itemname列

Yii 如何在表Authi框架中使用用户id更新itemname列,yii,rbac,Yii,Rbac,我在Yii框架中使用了auth管理器(RBAC),我遇到了一个问题。 我想使用表AuthAssignment中的用户id更新列itemname。 我可以使用以下代码插入数据库:Yii::app()->authManager->assign($model->role,$model->id) 但ı不知道如何更新表AuthAssignment中的数据。没有为AuthAssignment提供更新操作。为了更新列itemname,您应该首先从给定的RBAC GUI“撤销”您的项,然后“分配”您更新的项 如

我在Yii框架中使用了auth管理器(RBAC),我遇到了一个问题。 我想使用表AuthAssignment中的用户id更新列itemname。 我可以使用以下代码插入数据库:
Yii::app()->authManager->assign($model->role,$model->id)

但ı不知道如何更新表AuthAssignment中的数据。

没有为AuthAssignment提供更新操作。为了更新列itemname,您应该首先从给定的RBAC GUI“撤销”您的项,然后“分配”您更新的项


如果您需要进一步查询,请告诉我。

我认为,身份验证管理器(RBAC)中没有更新方法。因此,我们必须使用revoke方法进行删除,使用assign方法进行插入。我在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);

只需生成
AuthAssignment
和模型与控制器的CRUD。而不是使用
更新
操作更新数据。您的评论不清楚。如果您想显示代码,请更新答案。并正确格式化代码。