我正在使用 FOSUserBundle 并创建了一个自己的模型,其中包含一些新字段(如 deviceVersion(字符串)和 deviceType(字符串))。
如果我创建一个新用户并添加这些特定字段,一切都很好:
$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
问题是,在数据库中,“设备类型”和“设备版本”字段为 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 学说:schema:update --force --env="dev"
创建列没有任何问题。
知道如何解决这个问题吗?我首先尝试了 UserManager,仍然为 NULL,通过 EM 切换到手动,仍然为 NULL。