【问题标题】:How to delete all user roles in Kohana 3如何删除 Kohana 3 中的所有用户角色
【发布时间】:2010-07-28 08:00:07
【问题描述】:

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

【问题讨论】:

    标签: kohana kohana-3 kohana-orm kohana-auth


    【解决方案1】:

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

    $user->remove('roles');
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 谢谢。完美运行 :) 尽管如此,我还是忍不住要删除没有 ORM DB::delete('roles_users')->where('user_id','=',$id)->execute(); 的角色
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2019-04-07
        • 1970-01-01
        • 2020-09-24
        • 2020-12-27
        • 1970-01-01
        • 2015-01-24
        • 2017-04-25
        • 2021-04-01
        • 1970-01-01
        相关资源
        最近更新 更多