Как удалить все роли пользователя в Kohana 3 - PullRequest
2 голосов
/ 28 июля 2010

Я использую модуль 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 ]

7 голосов
/ 17 июня 2011

В соответствии с кодом версии 3.1.3.1 для класса Kohana_ORM, метод ORM "remove ($ alias, $ far_keys = NULL)", если вы не передадите второй параметр, уничтожит все связанные записи.

$user->remove('roles');
3 голосов
/ 01 августа 2010

Вместо удаления ролей из базы данных вам нужно удалить отношения между моделью пользователя и моделью ролей. Вы можете использовать метод ORM remove () .

foreach ($user->roles->find_all() as $role)
{
    $user->remove('roles', $role);
}
0 голосов
/ 27 августа 2010

Просто создайте тикет для этой функции.Вы можете использовать предложенный код.

...