1

我之前安装过 FosUser 包,今天安装了 SonataUserBundle。当我 --dump-sql 时,Symfony 想要安装 4 个新表:

fos_user_user
fos_user_group
for_user_user_group
notification_message

前 3 个令人困惑,因为管理员已经在使用现有的 ...Entity\User 类,我什至为其设置了关系。

namespace Rent\ProgramBundle\Entity;

use FOS\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;

/**
* @ORM\Entity
* @ORM\Table(name="tbl_user")
*/
class User extends BaseUser
...

为什么要安装这 3 个表以及如何防止这种情况?它们有什么用,因为即使没有它们,管理部分也能正常工作。

4

1 回答 1

1

默认情况下,SonataAdminBundle 不附带任何用户管理功能,但应用程序很可能需要此类功能。Sonata 项目包括一个集成了 FOSUserBundle 的 SonataUserBundle。

FOSUserBundle 在 Symfony2 中增加了对数据库支持的用户系统的支持。它为用户管理提供了一个灵活的框架,旨在处理用户登录、注册和密码检索等常见任务。

SonataUserBundle 只是一个将 FOSUserBundle 包含到 AdminBundle 中的薄包装器。SonataUserBundle 包括:

  • 默认登录区域
  • 用于显示当前用户和注销链接的默认 user_block 模板
  • 2个管理类:用户和组
  • 用户和组的默认类。

SonataAdminBundle 中有一个小魔法:如果 bundle 检测到 SonataUserBundle 类,那么默认的 user_block 模板将被更改为使用 SonataUserBundle 提供的模板。

请看一下这个文件。希望它是有帮助的。

于 2013-06-22T22:41:02.273 回答