Как удалить все роли пользователя в Kohana 3
Я использую модуль ORM Auth, и мне сложно понять, как это сделать. Я пробовал это дело:
$ user = ORM:: factory ('user', $ id); $ User->roles->delete_all();
И получил ошибку ErrorException [ Fatal Error ]: Call to undefined method Database_Query_Builder_Delete::join()
тем не мение $user->roles->find_all();
дает мне именно то, что я хочу.
3 ответа
Решение
Вместо удаления ролей из базы данных вы хотите удалить отношения между моделью пользователя и моделью ролей. Вы можете использовать ORM метод remove().
foreach ($user->roles->find_all() as $role)
{
$user->remove('roles', $role);
}
Согласно коду версии 3.1.3.1 для класса Kohana_ORM, метод ORM "remove($alias, $far_keys=NULL)", если вы не передадите второй параметр, уничтожит все связанные записи.
$user->remove('roles');
Просто создайте заявку на эту функцию. Вы можете использовать предложенный код.