我有一个表格,我想用于和编辑,但想要相应地更改字段和验证。
我正在通过查看在控制器中运行createForm
方法时传递的' name '选项来更改表单显示的内容。
在控制器中:
public function createAction(Request $request)
{
$client = new Client();
$form = $this->createForm('client', $client, array('name' => 'add'));
$request = $this->getRequest();
if ('POST' === $request->getMethod()) {
$form->handleRequest($request);
if ($form->isValid()) {
$client->save();
}
}
return $this->render('Bundle:client:clientAdd.html.twig', array(
'form' => $form->createView(),
));
}
在ClientType中:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('id');
if ('add' === $options['name']) {
$builder->add('name');
}
if ('edit' === $options['name']) {
$builder->add('age');
}
$builder->add('save', 'submit', array(
'label' => 'Save'
));
}
验证(在我的validation.yml中定义)具有所有字段的规则,并且它将在不存在的添加模式中为字段引发错误。
如何才能使验证成为条件?