symfony2 使用percent字段

项目中有一个数据字段是用百分比的,比如银行利率,活期 0.35%。数据库字段为 current_rate decimal(5,5)。

使用Symfony的CRUD生成的输入框默认是文本(text)类型的,如下:

public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('currentRate');
    }


需要改一下,在 src/Acme/UserBundle/Form/YourFormType.php中改成这样:

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('currentRate', 'percent', array('precision' => 3));
    }

对上面代码的说明:percent就是我们需要使用的Form类型,该类型会自动在文本框后面加上一个百分号,同时数据显示的值已经乘以100,如下:

symfony2 使用percent字段

这样在插入或更新到数据库时,实际的数据是 0.00330

一个需要注意的地方是那个 “precision” 属性,表示精度,默认是0。这样的花,即使录入的数据是对的(0.00330),但是更新时会在文本框中显示成四舍五入后的 integer 类型的值(0)。手动设置成精确到小数后3位就没问题了。

你可能感兴趣的:(symfony2 使用percent字段)