从公司创建新品牌:在 SonatAdminBundle 的 admin 中嵌入 admin
Create new brand from company: embed admin in admin in SonatAdminBundle
我将这两个表(见下图)映射如下:
class Brand
{
...
/**
* @var Company
*
* @ORM\ManyToOne(targetEntity="Company")
* @ORM\JoinColumn(name="companies_id", referencedColumnName="id")
*/
protected $company;
}
class Company
{
...
}
我有两个管理员 类:CompanyAdmin
和 BrandAdmin
。我需要添加对添加新品牌的支持 - 创建一个新品牌而不是 link 现有品牌 - 来自公司管理员,但我不知道如何实现这一点。思路是:
- 创建公司
- 在公司表单中添加一个按钮,我可以在其中保留当前的公司 ID,并 link 将该按钮添加到品牌管理中,这样我就可以轻松地向该公司添加新品牌
我正在阅读 sonata docs 但 嵌入其他管理员 部分尚未准备好。任何人都可以帮助我完成这项工作吗?我卡住了
我没有完全理解你的要求,但据我了解:
创建/select/从品牌中删除公司
class BrandAdmin extends Admin
{
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper->add('company', 'sonata_type_model_list', array(
'by_reference' => false
));
}
}
以公司形式添加新品牌
class CompanyAdmin extends Admin
{
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper->add('brands', 'sonata_type_collection',
array(
'label' => false,
'by_reference' => false
),
array(
'edit' => 'inline',
'inline' => 'table'
)
);
}
}
创建新品牌时显示的字段将基于 BrandAdmin 的 configureFormFields。
文档:https://sonata-project.org/bundles/admin/master/doc/reference/form_types.html#sonata-type-collection
我将这两个表(见下图)映射如下:
class Brand
{
...
/**
* @var Company
*
* @ORM\ManyToOne(targetEntity="Company")
* @ORM\JoinColumn(name="companies_id", referencedColumnName="id")
*/
protected $company;
}
class Company
{
...
}
我有两个管理员 类:CompanyAdmin
和 BrandAdmin
。我需要添加对添加新品牌的支持 - 创建一个新品牌而不是 link 现有品牌 - 来自公司管理员,但我不知道如何实现这一点。思路是:
- 创建公司
- 在公司表单中添加一个按钮,我可以在其中保留当前的公司 ID,并 link 将该按钮添加到品牌管理中,这样我就可以轻松地向该公司添加新品牌
我正在阅读 sonata docs 但 嵌入其他管理员 部分尚未准备好。任何人都可以帮助我完成这项工作吗?我卡住了
我没有完全理解你的要求,但据我了解:
创建/select/从品牌中删除公司
class BrandAdmin extends Admin
{
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper->add('company', 'sonata_type_model_list', array(
'by_reference' => false
));
}
}
以公司形式添加新品牌
class CompanyAdmin extends Admin
{
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper->add('brands', 'sonata_type_collection',
array(
'label' => false,
'by_reference' => false
),
array(
'edit' => 'inline',
'inline' => 'table'
)
);
}
}
创建新品牌时显示的字段将基于 BrandAdmin 的 configureFormFields。
文档:https://sonata-project.org/bundles/admin/master/doc/reference/form_types.html#sonata-type-collection