[英]Sonata - Use the repository of an entity in admin
我正在使用Sonata进行Symfony项目。
语境:
我有不同的实体:
ID
, categories (relation)
, characteristicValues (relation)
) ID
, characteristics (relation)
) ID
, id_category (relation)
, label
)。 ID
, id_product (relation)
, id_characteristic (relation)
, value
) 关系:
--OneToMany-->
特性值 -->OneToMany-->
特征 -->OneToMany-->
特征值 --ManyToMany-->
类别 问题:
我需要在ProductAdmin中获取产品类别的所有characteristics
(以及它们的values
如果设置了它们的values
)),并显示每个特征的输入(例如Characteristic1:value1)。
我做了什么:
我试图在ProductAdmin
调用一个函数CharacteristicValueRepository
,但是该存储库未实例化。
ProductAdmin的代码非常基本:
final class ProductAdmin extends AbstractAdmin
{
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->with('Product information', ['class' => 'col-md-6'])
->add('name', TextType::class, [
'label' => 'Name of the product'
])
->add('categories', EntityType::class, [
'class' => Category::class,
'choice_label' => 'name',
'multiple' => true,
'label' => 'Categories of the product'
])
->end();
}
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper->add('name');
$datagridMapper->add('categories');
}
protected function configureListFields(ListMapper $listMapper)
{
$listMapper->add('id');
$listMapper->addIdentifier('name');
$listMapper->addIdentifier('categories');
}
}
笔记:
我正在使用所有内容的最新版本(Symfony,Sonata等)
如果有人知道如何帮助我,我将不胜感激!
您需要配置自定义表单类型,例如ProductCharacteristicsType。 使用Form Event侦听器时,您可以获取所有特征并形成适当的集合。 您这里拥有的是EAV(实体属性值)模型。 这可能会给Symfony造成混乱,但是这是可以控制的。 在SonataAdmin上,您必须使用该自定义类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.