如何在奏鸣曲管理员表单中创建子组
How to make sub groups in sonata admin form
在奏鸣曲的AdminBundle\Mapper\BaseGroupedMapper.php
中看到了一个代码示例:
public function with($name, array $options = array())
{
/*
* The current implementation should work with the following workflow:
*
* $formMapper
* ->with('group1')
* ->add('username')
* ->add('password')
* ->end()
* ->with('tab1', array('tab' => true))
* ->with('group1')
* ->add('username')
* ->add('password')
* ->end()
* ->with('group2', array('collapsed' => true))
* ->add('enabled')
* ->add('createdAt')
* ->end()
* ->end();
*
*/
不幸的是,如果我先添加一个组然后再添加标签,我会收到错误消息。我希望我的表单有一个主要的简单表单(名字等...),然后在它下面的选项卡以逐个选项卡列出实体关系表单(onetomany...)以保持其清洁。不幸的是,我得到这个错误:
New tab was added automatically when you have added field or group. You should close current tab before adding new one OR add tabs before adding groups and fields.
有谁知道如何进行这项工作?或者这是两个分开的例子?我希望尽可能避免使用纯选项卡,因此无法让我的表单的一部分始终可见。
如果您想使用制表符,您的所有元素都必须位于制表符之间。
在您的示例中,第一个组 1 之间缺少一个制表符,您应该这样做:
$formMapper
->tab('General')
->with('group1')
->add('username')
->add('password')
->end()
->end()
->tab('Relations')
->with('group1')
->add('username')
->add('password')
->end()
->with('group2')
->add('enabled')
->add('createdAt')
->end()
->end();
我没有使用 ->with('', array('tab' => true)
,而是使用了 ->tab('')
,更有意义。
不再支持折叠:
在奏鸣曲的AdminBundle\Mapper\BaseGroupedMapper.php
中看到了一个代码示例:
public function with($name, array $options = array())
{
/*
* The current implementation should work with the following workflow:
*
* $formMapper
* ->with('group1')
* ->add('username')
* ->add('password')
* ->end()
* ->with('tab1', array('tab' => true))
* ->with('group1')
* ->add('username')
* ->add('password')
* ->end()
* ->with('group2', array('collapsed' => true))
* ->add('enabled')
* ->add('createdAt')
* ->end()
* ->end();
*
*/
不幸的是,如果我先添加一个组然后再添加标签,我会收到错误消息。我希望我的表单有一个主要的简单表单(名字等...),然后在它下面的选项卡以逐个选项卡列出实体关系表单(onetomany...)以保持其清洁。不幸的是,我得到这个错误:
New tab was added automatically when you have added field or group. You should close current tab before adding new one OR add tabs before adding groups and fields.
有谁知道如何进行这项工作?或者这是两个分开的例子?我希望尽可能避免使用纯选项卡,因此无法让我的表单的一部分始终可见。
如果您想使用制表符,您的所有元素都必须位于制表符之间。
在您的示例中,第一个组 1 之间缺少一个制表符,您应该这样做:
$formMapper
->tab('General')
->with('group1')
->add('username')
->add('password')
->end()
->end()
->tab('Relations')
->with('group1')
->add('username')
->add('password')
->end()
->with('group2')
->add('enabled')
->add('createdAt')
->end()
->end();
我没有使用 ->with('', array('tab' => true)
,而是使用了 ->tab('')
,更有意义。
不再支持折叠: