如何指定要进行身份验证的实体

时间:2013-05-08 22:46:40

标签: php symfony fosuserbundle

我正在使用Symfony和FOSUserBundle进行身份验证。我认为默认情况下它会针对名为User的实体进行身份验证。我不能使用它,因为它已经用于其他东西。对不同实体进行身份验证的最简单方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以使用您选择的名称定义您的用户类,并将其名称放在配置中。

我们打电话给这个班级JamesUser

定义您的实体:

<?php
// src/James/UserBundle/Entity/JamesUser.php

namespace Acme\UserBundle\Entity;

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

/**
 * @ORM\Entity
 * @ORM\Table(name="fos_user")
 */
class JamesUser extends BaseUser
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    public function __construct()
    {
        parent::__construct();
        // your own logic
    }
}

在配置文件中,确保使用正确的类:

# app/config/config.yml
fos_user:
    db_driver: orm
    firewall_name: main
    user_class: James\UserBundle\Entity\JamesUser

https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/index.md#step-5-configure-the-fosuserbundle