Php 第二个formbuilder包含第一个formbuilder的字段
与我以前的帖子相关,如果我有两种不同的形式:Php 第二个formbuilder包含第一个formbuilder的字段,php,symfony,silex,Php,Symfony,Silex,与我以前的帖子相关,如果我有两种不同的形式: $form = $app['manager.form'] ->addDuree() ->addPaiementType() ->addTermsAccepted() ->getForm(); $formcb = $app['manager.form'] ->addFirstname() ->addLastname() ->addNumero()
$form = $app['manager.form']
->addDuree()
->addPaiementType()
->addTermsAccepted()
->getForm();
$formcb = $app['manager.form']
->addFirstname()
->addLastname()
->addNumero()
->addMonth()
->addYear()
->addCryptogramme()
->getForm();
第二个表单的呈现包括在它之前声明的表单的字段。。。它不应该,因为我已经声明了两种不同的对象形式
不明白为什么第二个表单包含第一个表单的字段
但这是可行的:
//$form = $app['manager.form']
$f1 = new Form($app);
$form = $f1
->addDuree()
->addPaiementType()
->addTermsAccepted()
->getForm();
//$formcb = $app['manager.form']
$f2 = new Form($app);
$formcb = $f2
->addFirstname()
->addLastname()
->addNumero()
->addMonth()
->addYear()
->addCryptogramme()
->getForm();
对我来说,这是完全一样的事情,但似乎不是
感谢您的帮助您在调用
addXXX
方法时更改了$app['manager.form']
,而不是复制
如果要将$app['manager.form']
保留为其他表单的模板,请保护从应用程序获取manager.form
时返回对象以获取回调本身的回调
$app['manager.form'] = $app->protect(function() use ($app) {
return new Form($app);
});
$form = $app['manager.form']();
$form = $form
->addDuree()
->addPaiementType()
->addTermsAccepted()
->getForm();
$formcb = $app['manager.form']();
$formcb = $formcb
->addFirstname()
->addLastname()
->addNumero()
->addMonth()
->addYear()
->addCryptogramme()
->getForm();