2

我遇到了 FOSUserBundle 的问题。

在我的 Symfony2 应用程序中,我想实现两个不同的用户。我有一个实体用户,用于基本用户,一个实体 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不是配置变量,是直接写成字符串的。

谢谢。

4

3 回答 3

0

您可能应该在此处查看此(官方)页面

如前所述,您的问题可能取决于角色。

例如,您可以像这样创建一个普通用户:

php app/console fos:user:create testuser

或具有管理员权限的用户,如下所示:

php app/console fos:user:create adminuser --super-admin

我建议您阅读文档以获取有关角色的更多选项和详细信息。

问候

于 2012-06-11T10:08:03.113 回答
0

在您的情况下,您需要创建 4 个不同的实体,用户注册、用户注册、用户和组。有关更多详细信息,您需要查看 symfony2 安全性。

点击链接

在 user-registration,user-proregistration 中,您需要一个额外的字段 user_id 来将这两个实体与用户相关联。

于 2012-06-11T10:18:53.673 回答
0

您正在尝试重新定义 FOSUser 设置。取而代之的是,您需要创建单独的防火墙和提供程序(如果您愿意,可能是编码器)。检查这个答案

fos_user是 FOSUser 捆绑包中的硬编码键,基于它们加载的设置。您不能只是发明自己的配置并期望它能够工作。认为它等同于doctrinetwigswiftmailer在你的config.yml

此外fos_user.firewall_name,仅在 FOSBundle 中的注册侦听器中用于自动登录并在注册后重定向用户(如果启用)。

fos_user.user_class用于创建和验证表单,在注册期间创建新用户(您可以使用挂钩在此处添加您的功能)以及在简单的配置文件管理中是 FOSUser 的一部分。理论上,在您的情况下应该可以使用某种抽象用户实体类,或者简单地使用User实体并声明您的Entity\UserPro扩展Entity\User

于 2014-04-23T15:33:23.203 回答