php - FOSUserBundle UserManager 忽略字段

标签 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 应用程序/控制台学说:架构:更新 --force --env="dev"

创建列没有任何问题。

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

最佳答案

在您的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" />

关于php - FOSUserBundle UserManager 忽略字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19384389/

相关文章:

java - hibernate 外键插入不起作用

mysql - 左外连接自动向父表添加数据

php - Symfony:DQL在日期之间选择

symfony - Sonata Admin Bundle 向自定义管理员角色授予权限

php在表单提交时删除文件并记录

javascript - 如何在 Twig 模板中包含解释和未解释文本的混合

php - 从 PHP REST Web 服务返回 JSON 结果

php - 如何在 foreach 循环中对查询结果进行排序?

php - 地址栏位置的 Apache 重写规则

php - MySQL CONCAT : how to add data at the end of string and delete data at the beginning if size exceeded?