首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Sonata-admin中防止数字四舍五入?

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

Stack Overflow用户
提问于 2019-03-29 17:07:16
回答 1查看 477关注 0票数 1

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

这是一家酒馆。我的目标是允许食醋种植者通过索纳塔管理界面在数据库中添加产品数据,然后在商店网页上呈现这些数据。此过程工作正常。

我有一个名为'Product‘的实体,用不同的变量链接到Sonata-admin。一个是产品的价格('prix'),另一个是以升为单位的体积('contenance')。它们的类型为“float”。在“ProductAdmin”页面中,它们被类型化为“Moneytype”和“NumberType”。

我的问题是:在“添加产品”表单中,在Sonata-admin界面中,当食醋种植者输入价格和体积时,这些数字将始终四舍五入为整数(在他发送表单后)……并以这种格式写入数据库...并以这种格式呈现给网页。

我尝试在“formMapper”中添加“scale”选项。它真的起作用了。直到我在Sonata-admin中验证表单!

我已经尝试将实体变量类型更改为'decimal',添加'precision‘和'scale’选项...徒然。

在产品实体中:

代码语言:javascript
复制
 /**
     * @ORM\Column(type="decimal", precision=3, scale=2)
     */
    private $contenance;

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

在产品管理中

代码语言:javascript
复制
<?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的一部分。我研究了“供应商”目录,但没有找到任何关于“类型”或“四舍五入”的东西……

有没有办法解决这个问题?

先谢谢你……

托马斯

EN

回答 1

Stack Overflow用户

发布于 2019-04-12 16:11:34

答案:

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

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

我只是将我的数字除以100,然后再渲染它们...这似乎是正常的方式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55413870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档