Forms 在symfony2 form builder中访问基础实体

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

我正在寻找一种方法来访问symfony2 form builder类中的数据类实体

我之所以需要它,是因为submit按钮上的文本应该根据该实体的值(用户不能在表单中更改的值)而更改

所以基本上我想做:

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
}