如何防止Sonata-admin中的数字四舍五入?

问题描述 投票:0回答:1

大家早上好。我正在学习开发,我的第一个symfony4项目有问题。

这是一家葡萄酒商店。我的目标是允许葡萄种植者通过Sonata-admin界面在数据库中添加产品数据,然后在商店网页上呈现该数据。此过程正常运行。

我有一个名为'Product'的实体,它与Sonata-admin链接,具有不同的变量。一个是产品的价格('prix'),另一个是以升为单位的量('维持')。它们被输入为'float'。在“ProductAdmin”页面中,构建后台中显示的表单,它们被键入为“Moneytype”和“NumberType”。

我的问题是:在'添加产品'表格中,在Sonata-admin界面中,当藤蔓种植者输入价格和数量时,这些数字将总是四舍五入为整数(在他发送表格之后)......并写在此格式化到数据库...并以这种格式呈现给网页。

我试图在'formMapper'中添加'scale'选项。它实际上正在工作......直到我在Sonata-admin中验证表单!

我试图将实体变量类型更改为'decimal',添加'precision'和'scale'选项......徒劳无功。

在产品实体中:

 /**
     * @ORM\Column(type="decimal", precision=3, scale=2)
     */
    private $contenance;

    /**
     * @ORM\Column(type="decimal", precision=3, scale=2)
     */
    private $prix;

在产品管理中

<?php

namespace App\Admin;

use Sonata\AdminBundle\Admin\AbstractAdmin;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Form\FormMapper;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\MoneyType;
use Symfony\Component\Form\Extension\Core\Type\NumberType;

final class ProduitAdmin extends AbstractAdmin
{
    protected function configureFormFields(FormMapper $formMapper)
    {
        $formMapper->add('titre', TextType::class);
        $formMapper->add('millesime', TextType::class);
        $formMapper->add('cepage', TextType::class);
        $formMapper->add('appellation', TextType::class);
        $formMapper->add('description', TextType::class);
        $formMapper->add('contenance', NumberType::class, ['scale' => 3]);
        $formMapper->add('prix', MoneyType::class, ['scale' => 3]);
        $formMapper->add('classe', TextType::class);
    }

由于这些提示都没有奏效,并且由于舍入阶段发生在Sonata-admin界面中,我认为问题的原因是Sonata-admin的一部分。我探索了“供应商”的剧目,但没有找到关于“类型”或“四舍五入”的任何内容......

关于如何解决这个问题的任何想法?

先感谢您...

托马斯

forms rounding symfony4 sonata-admin backoffice
1个回答
0
投票

答案:

好吧,SonataAdmin只为数据库准备数字......不能包含浮点数/十进制数!

所以......一切都很正常。

我只是在渲染之前将数字除以100 ...这似乎是正常的方式。

© www.soinside.com 2019 - 2024. All rights reserved.