我在添加和编辑页面上使用表单,其中有一个输入文件,这是添加记录所必需的,但在编辑页面上不需要。有没有办法在不同的页面上更改属性?
$validator
->requirePresence('title', 'create')
->notEmpty('title');
这是我的控制器
$builder->add('title', 'text', array(
'required' => true,
))->add('description', 'textarea', array(
'required' => false,
))->add('fileName', 'file', array(
'data_class' => null,
'required' => true,
'label' => 'Upload File'
));
答案 0 :(得分:1)
在表单类中获取对象并检查是否添加或编辑新记录,并根据此设置“required”属性的值:
$obj = $builder->getData();
$builder->add('fileName', 'file', array(
'data_class' => null,
'required' => $obj->getId() === null ? true : false,
'label' => 'Upload File'
));
答案 1 :(得分:0)
您可以使用不同的选项创建两种表单类型。
在旁注中,您不需要将“required => true”设为默认选项,
答案 2 :(得分:0)
if ($request->getMethod() == 'POST') {
$form->submit($request);
$formData = $form->getData();
if ($formData->getFile() !== null){
/*
* New file has been uploaded
* Save or copy your old record; after this will be over-written
*/
}
$entityManager->persist($formData);
$entityManager->flush();
}