FOSUserBundle UserManager忽略字段

时间:2013-10-15 14:54:29

标签: php mysql symfony doctrine-orm fosuserbundle

我正在使用FOSUserBundle并创建了一个带有一些新字段的自有模型(如deviceVersion(string)& deviceType(string)。

如果我创建一个新用户并添加这些特定字段,一切都很好:

$user = new User();
$user -> setEmail('test@some.tld');
// Default stuff
$user -> setDevicetype('Android');
$user -> setDeviceversion('4.2.2');

$em = $this->getDoctrine()->getManager();
$em->persist($user);
$em->flush();

echo $user->getDevicetype(); // outputs Android
echo $user->getDeviceversion(); // outputs 4.2.2

问题是,在数据库中的字段“devicetype”& “deviceversion”为NULL。

即使查询完全忽略了这些新字段:

  INSERT INTO my_user (username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expired, expires_at, confirmation_token, ....

列确实存在并且       php app / console doctrine:schema:update --force --env =“dev”

创建列没有任何问题。

知道如何解决这个问题吗? 我首先尝试了UserManager,仍为NULL,通过EM切换到手动,仍为NULL。

1 个答案:

答案 0 :(得分:1)

User.orm.xml,你必须覆盖这些字段并输入参数nullable=true

像这样:

<field name="confirmationToken" column="confirmation_token" type="string" nullable="true" />
<field name="passwordRequestedAt" column="password_requested_at" type="datetime" nullable="true" />