为什么在Symfony2表单中需要字段

Can someone tell me why in form I have a filed that is required:

<input type="checkbox" id="client_invoice" name="client[invoice]" class="invoice-controller" value="1" required="required">

if in Entity I set:

/**
 * @ORM\Column(type="boolean", nullable=true)
 *
 * @var boolean
 */
protected $invoice;

My gues is becouse in form builder I have:

$builder->add('invoice', 'checkbox', array('label' => 'form.client.invoice'));

and then 'required' value is automatically set to true (becouse of the 3rd parameter in add function). Am I right, or is there another reason that this field is required?

dongyilu3143
dongyilu3143 这就是我要找的答案,谢谢:)
大约 5 年之前 回复
dsa5211314
dsa5211314 “如果您使用Symfony猜测字段类型(即省略或传递null作为add()的第二个参数),则只会猜测这些字段选项。”你正在通过复选框。(但是好的电话;))
大约 5 年之前 回复
dongnei3634
dongnei3634 symfony.com/doc/current/book/...
大约 5 年之前 回复

1个回答

Form fields are required by default in Symfony2. You can turn it off for a specified form field by:

$builder->add('invoice', 'checkbox', array(
    'label' => 'form.client.invoice',
    'required' => false,
));
dongshi1188
dongshi1188 在实体中设置nullable = false是Doctrine 2映射的事情。 表格对此一无所知。
大约 5 年之前 回复
dongtiao2976
dongtiao2976 因为您通常将实体连接到表单,所以它继承了实体字段的属性。 如果您需要某种数据,则将其设置为nullable = false,因为它是您需要的。 如果某种数据是可选的,那么它是可空的,这意味着它不是必需的。 这对我来说似乎合乎逻辑。
大约 5 年之前 回复
doulu1945
doulu1945 如果在实体中将字段设置为可空,则不需要字段。 我想知道为什么如果我在实体中将它们置为可空,则在生成表单时将它们设置为必需。
大约 5 年之前 回复
dongtang6775
dongtang6775 是。 如果使用复选框可能会很烦人,但在其他情况下它是一个很好的功能。
大约 5 年之前 回复
dpw50696
dpw50696 我知道我可以设置为false。 如果在实体中设置nullable = true,则字段将自动设置为“required”=> false。
大约 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问