Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony2:禁止在货币字段中输入是负面的_Php_Symfony - Fatal编程技术网

Php Symfony2:禁止在货币字段中输入是负面的

Php Symfony2:禁止在货币字段中输入是负面的,php,symfony,Php,Symfony,我想防止Symfony2 Formbuilder money字段中出现负值,但在实体中的属性注释中添加Min0或Rangemin=0断言不起作用。 实体中的属性如下所示: /** * @ORM\Column(name="price", type="integer") * @Assert\Type(type="integer", message="The value {{ value }} is not a valid {{ type }}.") * @Assert\Range( m

我想防止Symfony2 Formbuilder money字段中出现负值,但在实体中的属性注释中添加Min0或Rangemin=0断言不起作用。 实体中的属性如下所示:

    /**
 * @ORM\Column(name="price", type="integer")
 * @Assert\Type(type="integer", message="The value {{ value }} is not a valid {{ type }}.")
 * @Assert\Range( min = 0)
 * @var int
 */
private $price;

/**
 * @ORM\Column(name="setupFee", type="integer")
 * @Assert\Type(type="integer", message="The value {{ value }} is not a valid {{ type }}.")
 * @Assert\Range( min = 0)
 * @var int
 */
private $setupFee;
    $builder->add('address', null, array('label' => 'Kunde:'))          
            ->add('productGroup', 'entity', array(
                'label'     => 'Produktkategorie:',
                'class'     => 'Ttm\AccountingBundle\Entity\ProductGroup',
                'property'  => 'name'
            ))
            ->add('dedicatedServer', 'entity', array(
                'label'     => 'Server:',
                'class'     => 'Ttm\ServerBundle\Entity\DedicatedServer',
                'property'  => 'labelname',
                'query_builder' => function(EntityRepository $er) {
                    return $er->createQueryBuilder('dedicatedServer')
                        ->where('dedicatedServer.contract IS NULL');
                },
                'empty_data'    => null,
                'required'      => false,
            ))
            ->add('productDetails', 'textarea', array(
                    'label' => 'Produktdetails:',
                    'attr' => array('style' => 'width:350px',
                    'rows' => 4,)
            ))
            ->add('price', 'money', array(
                'label'     => 'Nettopreis:',
                'divisor'   => 100
            ))
            ->add('setupFee', 'money', array(
                'label'     => 'Einrichtungsgebühr:',
                'divisor'   => 100
            ))
FormType如下所示:

    /**
 * @ORM\Column(name="price", type="integer")
 * @Assert\Type(type="integer", message="The value {{ value }} is not a valid {{ type }}.")
 * @Assert\Range( min = 0)
 * @var int
 */
private $price;

/**
 * @ORM\Column(name="setupFee", type="integer")
 * @Assert\Type(type="integer", message="The value {{ value }} is not a valid {{ type }}.")
 * @Assert\Range( min = 0)
 * @var int
 */
private $setupFee;
    $builder->add('address', null, array('label' => 'Kunde:'))          
            ->add('productGroup', 'entity', array(
                'label'     => 'Produktkategorie:',
                'class'     => 'Ttm\AccountingBundle\Entity\ProductGroup',
                'property'  => 'name'
            ))
            ->add('dedicatedServer', 'entity', array(
                'label'     => 'Server:',
                'class'     => 'Ttm\ServerBundle\Entity\DedicatedServer',
                'property'  => 'labelname',
                'query_builder' => function(EntityRepository $er) {
                    return $er->createQueryBuilder('dedicatedServer')
                        ->where('dedicatedServer.contract IS NULL');
                },
                'empty_data'    => null,
                'required'      => false,
            ))
            ->add('productDetails', 'textarea', array(
                    'label' => 'Produktdetails:',
                    'attr' => array('style' => 'width:350px',
                    'rows' => 4,)
            ))
            ->add('price', 'money', array(
                'label'     => 'Nettopreis:',
                'divisor'   => 100
            ))
            ->add('setupFee', 'money', array(
                'label'     => 'Einrichtungsgebühr:',
                'divisor'   => 100
            ))

有人能帮忙吗?

对于Symonfy3,请尝试以下yaml验证:

AppBundle\Entity\SomeEntity: 特性: 价格: -不空白:~ -更伟大或更平等: 数值:0
NotBlank:~使该字段为必填字段。

首先,您真的希望货币为整数吗?查看:默认情况下,所有非整数值(例如6.78)将向下取整,例如6..=花钱不是个好主意。另外,从这个答案来看:看起来数字可能会强制整数为正,因为我想将输入存储在money字段中,作为数据库中的cent值。它是有效的,但不应该使用负面条目stored@Rangemin=0应该可以工作,你能给我们看一下使用该约束的代码吗?我在代码中添加了断言,但这不起作用,它将负数存储到db中