0
私は0から90までの整数を取る '傾き'というフィールドを持っています。
assert文では、型は整数でなければならないと述べています。この場合type = integerアサーションとchoiceフォームタイプを組み合わせる方法
私は、しかし、選択が起こるようにする方法を見つけることができません選択ウィジェット、0から90
の範囲の値を持つドロップダウンリストとしてフィールドをレンダリングしたいと思います整数として。フォームを送信しようとするたびに、 'このフィールドはInteger型である必要があります'というエラーが表示されます。
仕事
ドロップダウン選択リストの組み合わせとアサート\タイプ(タイプ=「整数」)してみましょう。
はにどのような方法がありますか?
エンティティで財産の定義:
/**
* @ORM\Column(name="inclination", type="integer", nullable=true)
* @Assert\NotBlank()
* @Assert\Min(limit=0)
* @Assert\Max(limit=90)
* @Assert\Type(type="integer")
*/
private $inclination;
形でフィールドが構築されます方法:
$builder->add('inclination', 'choice', array(
'choices' => $this->getInclinationChoices(),
'empty_value' => 'Choose an option',
));
private function getInclinationChoices()
{
$choices = array();
for($i=0; $i<= 90; $i++) {
$choices[$i] = "$i °";
}
return $choices;
}
アドバイスいただきありがとうございます。私がリファクタリングに慣れると、私はそれを試してみるつもりです。 今のところ私は答えとして設定しています。それはあなたのためにローカルで働いていたからです。 – Dieter
それは私のために働いて、それは私に望ましい結果をもたらしました。しかし、私はまだこれを行うためにsymfonyにやさしい方法があるかもしれないと感じています(おそらくフォーム検証グループ)。私はまだそれを見つけていない。 symfonyのより多くの経験をお持ちの方には、私たちと共有するための代替ソリューションがあります。 – Iain