大家早上好。我正在学习开发,我的第一个 symfony4 项目有问题。
是个酒铺。我的目标是允许葡萄种植者通过 Sonata-admin 界面在数据库中添加产品数据,然后在商店网页上呈现该数据。此过程正常工作。
我有一个名为“产品”的实体,它使用不同的变量链接到 Sonata-admin。一个是产品的价格('prix'),另一个是以升为单位的体积('contenance')。它们被键入为“浮点数”。在“ProductAdmin”页面中,后台显示的表单被构建,它们被键入为“Moneytype”和“NumberType”。
我的问题是:在“添加产品”表单中,在 Sonata-admin 界面中,当葡萄种植者输入价格和数量时,这些数字将始终四舍五入为整数(在他发送表单之后)......并写在这个格式到数据库...并以这种格式呈现到网页。
我试图在“formMapper”中添加“缩放”选项。它实际上正在工作......直到我在 Sonata-admin 中验证表单!
我试图将实体变量类型更改为“十进制”,以添加“精度”和“比例”选项......徒劳无功。
在产品实体中:
/**
* @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 的一部分。我探索了“供应商”目录,但没有找到任何关于“类型”或“舍入”的信息......
关于如何解决这个问题的任何想法?
先感谢您...
托马斯