2017-04-17 13 views
0

フィールド型を0と1の間の小数点に設定しようとしていますが、構成にかかわらず、doctrineはフォームフィールドから小数点を常に最も近い整数に丸めます。symfony2で小数点を設定する方法

マイエンティティ:

/** 
* @var integer 
* 
* @Assert\Range(
* min=0, 
* max=1, 
* minMessage = "this must be greater than or equal to 0.", 
* maxMessage = "this must be less than or equal to 1." 
*) 
* @ORM\Column(name="nuetu", type="decimal", precision=2, scale=1, nullable=true) 
*/ 
private $nuetu; 

マイフィールドタイプ:

 ->add('nuetu', 'integer', array(
      'scale' => 1, 
      'attr' => array(
       'min' => 0, 
       'max' => 1, 
       'step' => '.1', 
      ), 
      'label' => 'Lef a nuetu', 
      'required' => false, 
     )) 

私の小枝:私もassertを使用せずにしてprecisionを宣言せずに、または{{ form_row(form.nuetu) }} &を試してみた

{{ form_row(form.nuetu, {'type': 'number'}) }} 

scale私のエンティティ注釈で。

私の目標は、数値を(0.3または0.8)としてデータベースに保存することです。

私はこれらの質問を見てきましたが、私は成功していない:

What is the right way to define annotation for DECIMAL type in Doctrine2

Rounded decimal in edit form Symfony2 + Doctrine2

http://symfony.com/doc/2.7/reference/forms/types/integer.html

http://symfony.com/doc/2.7/reference/forms/types/number.html#scale

+0

あなたのフィールドタイプは整数型を指定しています。 'number'型に変更する必要があります。 – ehymel

答えて

0

整数は小数点ではありません。上記のehymelのような数字を使用してください:

->add('nuetu', NumberType::class, array(
    'scale' => 1, 
    'attr' => array(
     'min' => 0, 
     'max' => 1, 
     'step' => '.1', 
    ), 
    'label' => 'Lef a nuetu', 
    'required' => false, 
)) 

上記はうまくいくはずです。

関連する問題