Symfony 2 / Doctrine在varchar字段中不保存任何零

时间:2016-04-06 15:50:48

标签: mysql symfony doctrine-orm doctrine

更新

按要求,

$NewUser = new Users();
$Form = $this->createForm(new UserType(), $NewUser, [])
              ->add('save', 'submit', ['label' => 'Save',
                                       'attr' => ['class' => 'SaveButton ftLeft'],
                                      ]);
$Form->handleRequest($request);

if ($Form->isValid()) {
   /*
      Sometimes add more data to the entity.....
   */
   $em = $this->getDoctrine()->getManager();
   $em->persist( $NewUser );
   $em->flush();
}

$FormRender = $Form->createView();
return $this->render('xxxxBundle:Users/add.html.twig',
                                    ['AddUser' => $FormRender]);

有时我会在php代码中设置的字段上添加额外的实体,例如:帐户注册日期,但在大多数情况下,只需使用表单数据保存实体。

非常简单的问题,我有一个新的(ish)系统,并注意到当试图保存零,任何东西,电话号码输入时,它不会保存任何零?

我正在使用YMAL文件来控制我的学说ORM,这是我在User表中设置的方式,

    mobileNumber:
        type: string
        nullable: false
        length: 50
        options:
            fixed: false
        column: mobile_number

这确实保存/使该字段具有varchar,并且在我进行随机测试并看到它没有保存任何前导零之前一直没有想到它?

我知道你不能在int字段类型中保存前导零,但这是一个varchar。此外,当我进入数据库,并手动添加零到该输入,它很好,所以我把它不是数据库。与我如何获得保存数据的学说有关?

如果是这样,我该怎么改变?我刚刚使用标准的persist()和flush()命令保存数据?不知道为什么它不会保存零?我以为我必须将YMAL类型更改为手机之类的东西?我一直在文档上,看不到它。

欢迎大家帮助..

感谢。

1 个答案:

答案 0 :(得分:1)

原因在于你的评论:

  

用户表单类型的手机号码设置为' number'输入。

Form组件将此值转换为int。将字段类型更改为常规字符串。

如果要将值验证为仅数字,请使用Validation component