如何删除Kohana中的所有用户角色3

问题描述:

我正在使用ORM验证模块,很难弄清楚如何执行此操作。我已经试过这情况:如何删除Kohana中的所有用户角色3

 
$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();给我我想要的东西。

而不是从数据库中删除角色,你想要做的是删除用户模型和角色模型之间的关系。您可以使用ORM remove() method

foreach ($user->roles->find_all() as $role) 
{ 
    $user->remove('roles', $role); 
} 
+1

谢谢。完美的作品:)尽管如此,我还是忍不住要删除没有ORM的角色DB :: delete('roles_users') - > where('user_id','=',$ id) - > execute(); – Bob0101 2010-08-01 20:44:28

只需为此功能创建一个ticket即可。您可以使用建议的代码。

根据Kohana_ORM类的3.1.3.1版本代码,ORM方法“remove($ alias,$ far_keys = NULL)”如果不传递第二个参数,它将销毁所有相关条目。

$user->remove('roles');