【发布时间】:2016-05-11 10:20:45
【问题描述】:
我已阅读有关 Codeigniter 更新的类似问题和答案,但无法解决我的问题。
我有一个用户表和一个 user_role 表。 user 表包含 userid、name、address 等信息,user_role 表包含 userid 和 role_id,其中 role_id 是 Entry、Edit、View 等角色的 id。
现在管理员可以更改用户的角色并更新用户信息。角色显示为复选框。为了更新用户的角色,我删除了 user_role 表中该用户的所有行并插入了新角色。我试过这个:
if(!empty($_POST['role'])) {
$this->db->where('user_id', $id);
$this->db->delete('user_role');
foreach ($_POST['role'] as $val) {
$arr['user_id'] = $id;
$arr['role_id'] = $val;
$this->db->insert('user_role', $arr);
}
}
else {
$this->db->where('user_id', $id);
$this->db->delete('user_role');
}
如果取消选中所有复选框,则删除所有行。它工作正常。但这似乎不是正确的方法。请指导。
【问题讨论】:
-
你需要更新user_role来传递用户id
-
如果您想了解有关 codeigniter 上角色权限的更多信息,您可以在此处查看我的答案:stackoverflow.com/questions/37126013/…
-
很清楚 - 如果没有选中任何复选框,您的代码将删除所有用户角色 - 您期望什么?所以唯一困扰你的是 else 块只是以不同的方式处理它
标签: php codeigniter activerecord