Jun*_*ami 7 symfony symfony-sonata sonata-admin
例如,我有3个实体:
在SonataAdminBundle中,我希望能够在编辑子类别时编辑类别和产品时添加子类别.
按照这个想法,我创建了字段,但SonataAdminBundle开始与它们一起玩"Inception".
当我打开类别I时,查看包含相关产品的相关子类别.
在这种情况下,如何切断"产品"字段?
更新:
我的课程(简化)如下所示:
// .../CoreBundle/Admin/CategoryAdmin.php
protected function configureFormFields(FormMapper $formMapper) {
$formMapper
->add('name', null, array('required' => true))
->add('url', null, array('required' => true))
->add('subcategories', 'sonata_type_collection', array('by_reference' => true), array(
'edit' => 'inline',
'sortable' => 'pos',
'inline' => 'table',));
}
// .../CoreBundle/Admin/SubcategoriesAdmin.php
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('name', null, array('label' => 'name'))
->add('category_id', null, array('label' => 'Category'))
->add('url', null, array('label' => 'Url'))
->add('products', 'sonata_type_collection',
array('by_reference' => false),
array(
'edit' => 'inline',
'sortable' => 'pos',
'inline' => 'table',
));
}
// .../CoreBundle/Admin/ProductsAdmin.php
protected function configureFormFields(FormMapper $formMapper) {
$formMapper
->add('name', null, array('label' => '?????????'))
->add('subcategory_id', null, array('label' => 'Subcategory'));
}
Run Code Online (Sandbox Code Playgroud)
架构看起来像这样:
在AdminBundle中它看起来像这样:

你为什么不尝试这些方面的东西:
// .../CoreBundle/Admin/SubcategoriesAdmin.php
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('name', null, array('label' => 'name'))
->add('category_id', null, array('label' => 'Category'))
->add('url', null, array('label' => 'Url'));
// only show the child form if this is not itself a child form
if (!$formMapper->getFormBuilder()->getForm()->hasParent()) {
$formmapper
->add('products', 'sonata_type_collection',
array('by_reference' => false),
array(
'edit' => 'inline',
'sortable' => 'pos',
'inline' => 'table',
));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11028 次 |
| 最近记录: |