fosuser在哪里可以保存用户?

时间:2014-10-13 13:22:20

标签: symfony login fosuserbundle sonata-admin

我完成了sonata-admin bundle + fosuser bundle的安装。 在使用命令行创建用户后,我发现当我使用admin admin登录时,它给了我不良凭据,所以在调试一段时间后我发现fos:user:create save users to fos_user_user not user table。 如何解决这个问题并使fos:user:在用户表中创建保存创建的用户。

这是我的config.yml的片段

fos_user:
    db_driver: orm
    firewall_name: main
    user_class:     Application\Sonata\UserBundle\Entity\User
    #user_class:     Sizar\JobeetBundle\Entity\SizarUser
    group:
        group_class:   Application\Sonata\UserBundle\Entity\Group

sonata_user:
    class:                  # Entity Classes
        user:               Application\Sonata\UserBundle\Entity\User

如果需要任何配置,那么我将在下面的评论中添加

User.php类

namespace Application\Sonata\UserBundle\Entity;

use Sonata\UserBundle\Entity\BaseUser as BaseUser;

class User extends BaseUser {

    protected $id;

    public function __construct() {
        parent::__construct();
    }

    public function getId() {
        return $this->id;
    }

}

orm用户文件

<?xml version="1.0" encoding="UTF-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
              http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">

<entity name="Application\Sonata\UserBundle\Entity\User" table="fos_user_user">

    <id name="id" column="id" type="integer">
        <generator strategy="AUTO" />
    </id>

</entity>

</doctrine-mapping>

1 个答案:

答案 0 :(得分:1)

您必须更新映射配置,以便该doctrine知道它映射到哪个表

<?xml version="1.0" encoding="UTF-8"?>
<doctrine-mapping ...>

<entity name="Application\Sonata\UserBundle\Entity\User" table="fos_user_user">
...
</entity>
</doctrine-mapping>

在这里,您需要将“table”属性更新为正确的数据库表。可能你需要recreate the database

有关使用FosUserBundle实体设置的详细信息,请参阅FosUserBundle - Install docs