我遇到了FOSUserBundle的问题。
在我的Symfony2应用程序中,我想实现两个不同的用户。 对于基本用户,我有一个实体User,有一个具有更多信息的实体UserPro。
我的问题是我想用这两个实体配置我的包:
fos_user:
db_driver: orm
firewall_name: main
user_class: Btp\UserBundle\Entity\User
fos_userpro:
db_driver: orm
firewall_name: pro
user_class: Btp\UserProBundle\Entity\UserPro
所以,在我的security.yml中使用fos_user和fos_userpro作为提供者。
我不确定这是可能的。我收到一个错误:
没有扩展程序可以加载“fos_userpro”的配置(在/.... / app / config / config.yml中)。寻找名称空间“fos_userpro”,找到“框架”,“安全”,......
当我查看FOSUserBundle文件时,我觉得fos_user不是配置变量,而是直接用字符串编写。
感谢。
答案 0 :(得分:0)
您应该查看此(官方)页面here
您的问题可能取决于之前所说的rôles。
例如,你可以像这样创建一个普通用户:
php app/console fos:user:create testuser
或具有以下管理员权限的用户:
php app/console fos:user:create adminuser --super-admin
我建议你去阅读文档,了解有关角色的更多选项和详细信息。
此致
答案 1 :(得分:0)
在您的情况下,您需要进行4种不同的实体,用户注册,用户预注册,用户和组。有关详细信息,您需要查看symfony2安全性。
在用户注册,用户预注册中,您需要一个额外的字段user_id,用于将这两个实体与用户相关联。
答案 2 :(得分:0)
您正在尝试重新定义FOSUser设置。而不是那样,你需要创建单独的防火墙和提供程序(如果你愿意,可能需要编码器)。 check this SO answer
fos_user
是FOSUser包中的受密码密钥,具体取决于它们的加载设置。你不能只是发明自己的配置,并期望它的工作。将其视为等同于doctrine
twig
或swiftmailer
或config.yml
此外fos_user.firewall_name
仅在注册监听器中的FOSBundle中用于自动登录并在注册后重定向用户(如果已启用)。
fos_user.user_class
用于创建和验证表单,在注册期间创建新用户(您可以使用挂钩在此处添加功能)以及简单的配置文件管理,这是FOSUser的一部分。从理论上讲,应该可以在您的案例中使用某种抽象用户实体类,或者只使用User
实体并声明Entity\UserPro
扩展Entity\User
。