第二个 formbuilder 包括第一个 formbuilder 的字段
Second formbuilder include fields of first formbuilder
与我之前的post相关,如果我有两个不同的形式:
$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']
作为其他表单的模板保护回调 returns 对象在从应用程序获取 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();
与我之前的post
$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']
作为其他表单的模板保护回调 returns 对象在从应用程序获取 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();