سؤال

I'm using ORM Auth module and it's difficult to figure out how to do it. I've tried this case:

$user = ORM::factory('user', $id);
$user->roles->delete_all();

And got error ErrorException [ Fatal Error ]: Call to undefined method Database_Query_Builder_Delete::join()

However $user->roles->find_all(); gives me exactly what i want.

هل كانت مفيدة؟

المحلول

Instead of deleting roles from the database, what you want to do is remove the relationships between the user model and the roles model. You can use the ORM remove() method.

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

نصائح أخرى

According to version 3.1.3.1 code for Kohana_ORM class, the ORM method "remove($alias, $far_keys=NULL)" if you do not pass the second parameter, it will destroy all related entries.

$user->remove('roles');

Just create a ticket for this feature. You can use a code suggested.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top