如何使用 table AuthAssignment Yii Framework 中的用户 ID 更新 itemname 列
How can I update itemname column using user id in table AuthAssignment Yii Framework
我在 Yii Framework 中使用 auth manager (RBAC),但遇到了问题。
我想使用 table AuthAssignment 中的用户 ID 更新列 itemname。
我可以使用以下代码插入数据库:Yii::app()->authManager->assign($model->role,$model->id);
但我不知道如何在 table AuthAssignment 中更新此数据。
没有为 AuthAssignment 提供更新操作。要更新列项目名称,您应该首先从给定的 RBAC GUI 'revoke' 您的项目,然后 'assign' 您更新的项目。
如果您面临进一步的相同查询,请告诉我。
我认为,auth manager(RBAC)中没有update方法。所以我们必须使用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();
}
然后我调用以下代码将角色插入和更新到 table
$this->assignRole($model->role,$model->id);
我在 Yii Framework 中使用 auth manager (RBAC),但遇到了问题。
我想使用 table AuthAssignment 中的用户 ID 更新列 itemname。
我可以使用以下代码插入数据库:Yii::app()->authManager->assign($model->role,$model->id);
但我不知道如何在 table AuthAssignment 中更新此数据。
没有为 AuthAssignment 提供更新操作。要更新列项目名称,您应该首先从给定的 RBAC GUI 'revoke' 您的项目,然后 'assign' 您更新的项目。
如果您面临进一步的相同查询,请告诉我。
我认为,auth manager(RBAC)中没有update方法。所以我们必须使用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();
}
然后我调用以下代码将角色插入和更新到 table
$this->assignRole($model->role,$model->id);