Symfony从扩展类中形成默认值

时间:2014-12-31 11:41:13

标签: php symfony

我正在尝试在symfony中为表单设置默认值,但它似乎不起作用。表单映射到实体。

我知道如果你在实体中设置值那么这将是默认值,但在我的情况下,实体扩展另一个类(映射的超类),我的字段在该类上。

/** @ORM\MappedSuperclass */
abstract class BaseEntity implements CustomEntityInterface
{
  protected $choiceField = 30;

 [ getters, setters, ... ]
}

class MyEntity extends BaseEntity
{
  [other attributes, getters, setters, ...]
}

choiceField应该默认为30但不是。 (这是一个分钟的选择字段,它的值为5到60,步长为5)

我知道我可以在MyEntity中重新声明$ this-> choiceField,但这对我来说似乎不对。还有其他解决方案吗?

谢谢, 甜菊

1 个答案:

答案 0 :(得分:0)

我认为你的意思是:

abstract class BaseEntity implements CustomEntityInterface
{
    protected $choiceField = 30;
}

默认值格式Symfony2表单可以在表单创建过程中简单设置:

public function buildForm(FormBuilderInterface $builder, array $options) 
{
    $builder
        ->add('choiceField', 'text', array(
            'label' => 'Field',
            'data' => 'Default value'
        ))
        // ...
    ;
}

以及设置实体属性值。