【问题标题】:Sonata Admin Bundle - Different field options in configureFormFieldsSonata Admin Bundle - configureFormFields 中的不同字段选项
【发布时间】:2013-05-24 14:09:59
【问题描述】:

是否可以根据您是在 configureFormFields 中创建新实体还是编辑现有实体,向 Sonata Admin Bundle Form 添加不同的字段?

【问题讨论】:

标签: php forms symfony mode symfony-sonata


【解决方案1】:

我不确定这是否是最好的方法,但我已经使用:

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 条件。

【讨论】:

  • 有没有办法在嵌入式管理员的情况下做同样的事情?我正在使用 sonata_type_collection 并希望对其中一个子表字段执行相同的操作。谢谢
  • @GBRocks 根据我的经验这是不可能的,主题引用与行无关(尤其是在保存时)
【解决方案2】:

官方文档(Click here)推荐了一种更好的方式

$subject = $this->getSubject();

if ($subject->isNew()) {
    $formMapper->add('customField', TextType::class);
}

或者你可以这样做:

if ($this->isCurrentRoute('create')) {
    $formMapper->add('name', TextType::class);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-03
    • 2013-03-06
    • 1970-01-01
    • 2023-04-01
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多