2010-07-28 84 views
2

我正在使用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();給我我想要的東西。

回答

3

而不是從數據庫中刪除角色,你想要做的是刪除用戶模型和角色模型之間的關係。您可以使用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

-1

只需爲此功能創建一個ticket即可。您可以使用建議的代碼。

7

根據Kohana_ORM類的3.1.3.1版本代碼,ORM方法「remove($ alias,$ far_keys = NULL)」如果不傳遞第二個參數,它將銷燬所有相關條目。

$user->remove('roles'); 
相關問題