【问题标题】:symfony2 - add roles to an user that implements UserInterfacesymfony2 - 为实现 UserInterface 的用户添加角色
【发布时间】:2014-02-26 20:11:28
【问题描述】:

我有一个名为 User 的实体实现了 UserInterface,所以它有 getRoles() 方法:

函数 getRoles() { 返回数组('ROLE_CLIENT'); }

是否可以在创建用户后向该用户添加另一个角色?

【问题讨论】:

    标签: symfony user-interface roles


    【解决方案1】:

    默认使用__construct方法添加用户角色

    // Your user entity
    class User {
    
        public function __constuct() {
            $this->roles = array(
                'ROLE_CLIENT', // or other roles
            );
        }
    
    }
    

    或在您创建新用户的控制器中添加任何角色给他们。

    【讨论】:

    • 嗨,我的课是:class User implements UserInterface{... function getRoles() { return array('ROLE_CLIENT'); ...}。所以,在这个函数中我指定了角色。我的班级中没有存储角色的字段。但是,由于 UserInterface 的实现,角色被保存了。我的问题是...如何向已创建的用户添加更多角色。
    • 要向用户添加更多角色,您可以简单地将它们添加到数组中array("ROLE_CLIENT", "ROLE_USER", "ROLE_SUBSCRIBER")。但最好将角色存储在 DB 中,例如在 Managing Roles in the Database 中实现
    • 我已尝试使用您告诉我的 RoleInterface,但我使用的是 php 5.4,当我在数据库中已创建用户时尝试登录时,这会导致我出现问题(同样的问题:stackoverflow.com/questions/12251825/…)。我真的很想这样做,但我认为没有解决方案......那么,如何将Controller中的角色添加到已经创建的用户?
    猜你喜欢
    • 2013-11-11
    • 1970-01-01
    • 2022-01-18
    • 2019-08-11
    • 1970-01-01
    • 2011-09-02
    • 2012-02-11
    • 2015-11-17
    • 2013-12-05
    相关资源
    最近更新 更多