Я читал подобные вопросы и ответы на обновление Codeigniter, но не смог решить мою проблему.Вставить/обновить с помощью Codeigniter
У меня есть таблица пользователя и таблица user_role. В таблице пользователя есть информация, такая как userid, имя, адрес и т. Д., А таблица user_role имеет идентификаторы userid и role_id, где role_id - идентификаторы для ролей, такие как Entry, Edit, View и т. Д.
Теперь администратор может изменить роль пользователя и обновить информацию о пользователе. Роли показаны как флажки. Чтобы обновить роли пользователя, я удалил все строки для этого пользователя в таблице 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 передать идентификатор пользователя –
Если вы хотите получить больше информации о разрешениях по ролям на CodeIgniter вы можете увидеть мой ответ здесь : http://stackoverflow.com/questions/37126013/secure-php-functions-with-array/37126471?noredirect=1#comment61833227_37126471 –
его ясно - ваш код удаляет все роли пользователя, если ни один из отметок не установлен - что делать вы ожидаете? так что единственное, что вас беспокоит, - это блок else, который просто обрабатывает его по-другому. – sintakonte