代码之家  ›  专栏  ›  技术社区  ›  Svish

如何生成用户角色网格

  •  0
  • Svish  · 技术社区  · 14 年前

           users (id, username, ... )
           roles (id, name)
     roles_users (user_id, role_id)
    

    我想知道如何创建一个很好的用户角色网格,管理员可以使用它来以清晰的方式管理用户的角色。我想要的基本上是一个充满了类似这样的复选框的表格:

            Login  Editor  Admin
    Alice     ■      ■       ■
    Bob       ■      □       □      
    Carol     ■      ■       □
    
                          [Apply]
    

    生成表并不是一件太麻烦的事,但是当涉及到如何命名所有的复选框,尤其是如何以一种不太笨拙的方式读取和更新数据库时,我非常不确定如何处理它。有没有人有什么好的建议或建议,以一个基本干净的方式来做这件事?

    我使用的是kohana3框架,如果有什么可以让它更简单的话,但是我当然欢迎任何答案。

    2 回复  |  直到 14 年前
        1
  •  0
  •   Fanis Hatzidakis    14 年前

    $user->roles = $rolesArray . 那么 $user->save() 知道自动更新/插入。

    一种命名复选框的方法是 name="userid[]" value="roleid" ,所以 name="1[]" value="2"

        2
  •  0
  •   biakaveron    14 年前
    1. 默认情况下 roles 表包含 二者都 name description 使用它生成复选框。
    2. 我希望更改权限 一次一个用户。有点像
              Login      Editor    Admin 
      Alice     ■       □     ■     [Apply]
    3. Ko3中的ORM不支持“魔法” 并提供 add() has() remove() 工作方法 具有 多对多 应该首先调用remove()来删除 旧设置(这是我的 fix 删除() 然后打电话 对于每个新角色。另一种方法是 迭代角色和 检查每个角色 $user->has('role', $role) .

      计算差异( $removed_roles $new_roles )在保存之前。使用数据库 要删除的查询生成器 再加上 $新角色 (最多2个查询)。

    推荐文章