更新数字表单字段

Update number form field

我的 table 中有一个名为 'starting_price' 的字段,用于存储钱。我将钱存储为以美分为单位的整数,当我存储它时,我将它乘以 100,因此它可以以美分存储。例如,10$ 在数据库中存储为 1000,但在渲染它时我将它除以 100 并在 twig 中使用 number_format。现在我想添加更新功能,我想在渲染之前将它除以 100,但它不起作用。我的表格中有这个:

        ->add('starting_price', NumberType::class,[
        'label' => 'Starting price',
    ])

这是我的树枝:

  {{ form_row(form.starting_price) }}

当我在我的 twig 文件中添加 /100 时 returns 出现错误

An exception has been thrown during the rendering of a template ("Warning: A non-numeric value encountered").

这显示 12000 美分,我希望它显示 120

您可以使用表单数据转换器:Doc here

$builder
    ->get(
        'starting_price',
        NumberType::class,
        [
            'label' => 'Starting price',
        ]
    )
    ->addModelTransformer(new CallbackTransformer(
        function ($data) {
            return $data / 100;
        },
        function ($data) {
            return $data * 100;
        }
   )
);