如果我从FOSUserBundle用户实体扩展,哪些字段会持久保存到数据库

时间:2012-07-12 02:46:55

标签: php symfony doctrine-orm

我正在从FOSUserbundle扩展我的UserBundle。我看到有一个完整的用户类 Model/User.phpEntity/User.php

我正在扩展我的班级

namespace MYS\CoreBundle\Entity;
use FOS\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**

 * @ORM\Entity

 * @ORM\Table(name="fos_user")

 */

class User extends BaseUser

{

     /**

 * @ORM\Column(type="string", length="255")

 *

 * @Assert\NotBlank(message="Please enter your name.", groups={"Registration", "Profile"})

 * @Assert\MinLength(limit="3", message="The name is too short.", groups={"Registration", "Profile"})

 * @Assert\MaxLength(limit="255", message="The name is too long.", groups={"Registration", "Profile"})

 */

protected $firstName;

我的问题是:

  1. 是否为FOSUSerbundle用户实体生成了任何数据库表,或者它们只是类而且没有持久化

  2. 在上面的代码中,我的usertable将只有firstname作为属性或FosUserBundle中的Model/User.php所有其他属性

  3. FOSUserBundle持久保存表格的逻辑在哪里

2 个答案:

答案 0 :(得分:0)

  1. 否。您必须只更新数据库架构,字段$ firstName将是fos_user中的另一列。
  2. 见1.

答案 1 :(得分:0)

1 - 是的,将创建一个表。但请记住,由于您使用自己的FOSUserBundle扩展了用户实体,因此实际的表结构可能包含FOSUserBundle实体所没有的其他字段。

2 - 您的用户表将包含FOSUserBundle用户实体中定义的所有字段,以及子类中定义的任何字段。

3 - 我现在不确定,但看看源代码,你会找到答案。