Forms 表单和必需属性
我想知道一些事情。也许这是Symfony中的一个bug,我不知道: 假设一个产品对象:Forms 表单和必需属性,forms,symfony,Forms,Symfony,我想知道一些事情。也许这是Symfony中的一个bug,我不知道: 假设一个产品对象: class Product { private $id; private $name; private $price; private $description; } 我用这个对象构建了一个表单。这是我的验证文件: myVendor\myBundle\Entity\Product: properties: name: - NotBlank: ~
class Product
{
private $id;
private $name;
private $price;
private $description;
}
我用这个对象构建了一个表单。这是我的验证文件:
myVendor\myBundle\Entity\Product:
properties:
name:
- NotBlank: ~
price:
- NotBlank: ~
这是我的formbuilder:
$builder->add('name', 'text', array('label' => $this->translator->trans('product.demo.name')));
$builder->add('price', 'money', array(
'label' => $this->translator->trans('product.demo.price'),
'invalid_message' => $this->translator->trans('product.demo.validation.price.error')
));
$builder->add('description', 'textarea', array('label' => $this->translator->trans('product.demo.description')));
生成表单时,字段的3个区域具有必需的属性。。。甚至是不需要的描述
如果我停用HTML5,它工作得很好,因为Symfony查看验证文件,发现描述字段不是必需的
但是如果激活了HTML5,则由于required属性,需要一个描述值
这是Symfony在默认情况下生成具有必需属性的字段的错误还是什么
能修好吗
多谢各位
附言:我和symfony2.2一起工作。。。看起来此版本已找到并提供了解决方案,但问题仍然存在。默认情况下,每个Symfony2表单类型的
必需选项都设置为true
,
无论您在验证中使用了什么Assert
所需的选项只是一个“很好拥有”的特性,不能进行真正的服务器端验证。这是验证断言的角色
只需在您的描述中添加required=false
:
$builder->add('description',
'textarea', array(
'label' => $this->translator->trans('product.demo.description'),
'required' => false
));
默认情况下,每个Symfony2表单类型的必需
选项设置为真
,
无论您在验证中使用了什么Assert
所需的选项只是一个“很好拥有”的特性,不能进行真正的服务器端验证。这是验证断言的角色
只需在您的描述中添加required=false
:
$builder->add('description',
'textarea', array(
'label' => $this->translator->trans('product.demo.description'),
'required' => false
));