Forms 在symfony2 form builder中访问基础实体
我正在寻找一种方法来访问symfony2 form builder类中的数据类实体 我之所以需要它,是因为submit按钮上的文本应该根据该实体的值(用户不能在表单中更改的值)而更改 所以基本上我想做:Forms 在symfony2 form builder中访问基础实体,forms,symfony,Forms,Symfony,我正在寻找一种方法来访问symfony2 form builder类中的数据类实体 我之所以需要它,是因为submit按钮上的文本应该根据该实体的值(用户不能在表单中更改的值)而更改 所以基本上我想做: if ($this->entity->getVariable() == xxx) { // do something } else { // do something else } 在form builder类中如果从controller创建表单,则可以传递任何需要的选项 // A
if ($this->entity->getVariable() == xxx) {
// do something
} else {
// do something else
}
在form builder类中如果从controller创建表单,则可以传递任何需要的选项
// AcmeType.php
public function buildForm(FormBuilderInterface $builder, array $options)
{
$entity = $options['entity'];
}
// AcmeController.php
$form = $this->createForm(new AcmeType(), $entity, array('entity' => $entity));
或者更好但更难的方法是使用Praxatig为我指出了正确的方向,解决方案更简单: 基础实体作为名为“数据”的选项自动可用,因此您可以执行以下操作:
public function buildForm(FormBuilderInterface $builder, array $options) {
// whatever
if (isset($options['data'])) {
switch ($options['data']->getSomeVariable()) {
// whatever
}
}
// whatever
}