Forms 如何将选择表单类型与type=integer断言组合
我有一个名为“倾斜度”的字段,它取0到90(度)之间的整数。Forms 如何将选择表单类型与type=integer断言组合,forms,validation,symfony,constraints,assert,Forms,Validation,Symfony,Constraints,Assert,我有一个名为“倾斜度”的字段,它取0到90(度)之间的整数。 在assert语句中,我声明类型必须是integer 在本例中,我希望将字段呈现为一个选项小部件,一个下拉列表,其值范围为0到90。 然而,我无法找到一种方法让选择以整数形式发生。每次我尝试提交表单时,都会出现错误“此字段必须为整型” 有没有办法: 让下拉选择列表和assert\Type(Type=“Integer”)组合使用 工作 实体中属性的定义: /** * @ORM\Column(name="inclinat
在assert语句中,我声明类型必须是integer 在本例中,我希望将字段呈现为一个选项小部件,一个下拉列表,其值范围为0到90。
然而,我无法找到一种方法让选择以整数形式发生。每次我尝试提交表单时,都会出现错误“此字段必须为整型” 有没有办法:
让下拉选择列表和assert\Type(Type=“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;
}
$builder->add('indelation','choice',数组(
'choices'=>this->get倾斜度选项(),
“空值”=>“选择一个选项”,
));
私有函数getClientationChoices()
{
$choices=array();
对于($i=0;$i不确定这是否是正确的Symfony 2方法,但是您可以在实体的setindings()
方法上强制将值设置为PHP整数类型吗
例如:
我在本地重新创建了您的问题,此修复程序对我有效。谢谢您的建议,这可能会有效。当我着手进行重构时,我会尝试一下。现在我将其设置为答案,因为它在本地对您有效。它对我有效,并给了我所需的结果。但我仍然觉得可能会有更好的对Symfony友好的w可以这样做(可能是一个表单验证组)。我只是还没有找到它。希望有更多Symfony经验的人有其他解决方案与我们分享。
public function setInclination($inclination)
{
$this->inclination = (int) $inclination;
}