在 Symfony2 中使用 FOSUser Bundle 生成学说实体时出错

Error while generating doctrine entities with FOSUser Bundle in Symfony2

我正在使用 FOSUser 包并且一切正常,直到我尝试创建数据库实体,我收到此错误:

与Symfony 2.5的bug无关,我用的是2.7版本

Case mismatch between loaded and declared class names: App\UserBundle\Entity\user vs App\UserBundle\Entity\User

这是我的 fos 配置文件:

fos_user:
    db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
    firewall_name: main
    user_class: App\UserBundle\Entity\User

我的 classes 和名称空间似乎有正确的上限,我不知道为什么会这样。我尝试清除缓存,没有错误,但没有用。

用户class是App/UserBundle/Entity/User.php,内容如下:

<?php
namespace App\UserBundle\Entity;

use FOS\UserBundle\Model\User as BaseUser;

/**
 * User
 */
class User extends BaseUser
{
    public function __construct()
    {
        parent::__construct();
    }
}

如果您将用户实体修改为如下所示(将 user_table 替换为预期的 table 名称)会怎样?

namespace App\UserBundle\Entity;

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

/**
 * User
 * @ORM\Table(name="user_table")
 * @ORM\Entity
 */
class User extends BaseUser
{
    public function __construct()
    {
        parent::__construct();
    }
}

我发现了问题,我使用 yaml 作为实体定义并且文件名是 user.orm.yml 而不是 User.orm.yml。