【发布时间】:2013-05-24 14:09:59
【问题描述】:
是否可以根据您是在 configureFormFields 中创建新实体还是编辑现有实体,向 Sonata Admin Bundle Form 添加不同的字段?
【问题讨论】:
-
您很可能希望使用Form Events
标签: php forms symfony mode symfony-sonata
是否可以根据您是在 configureFormFields 中创建新实体还是编辑现有实体,向 Sonata Admin Bundle Form 添加不同的字段?
【问题讨论】:
标签: php forms symfony mode symfony-sonata
我不确定这是否是最好的方法,但我已经使用:
protected function configureFormFields(FormMapper $form)
{
// Add fields common to add AND edit...
if ($this->getSubject()->getId() > 0) {
// Add fields only when editing an existing object
}
}
如果您只想为新对象添加字段,显然您也可以添加 else 条件。
【讨论】:
官方文档(Click here)推荐了一种更好的方式
$subject = $this->getSubject();
if ($subject->isNew()) {
$formMapper->add('customField', TextType::class);
}
或者你可以这样做:
if ($this->isCurrentRoute('create')) {
$formMapper->add('name', TextType::class);
}
【讨论】: