我正在编辑Sonata生成的管理类。它根据计划的和完成的分发来处理视频过滤。该类已经包含以下内容:
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper
->add('producedTill', 'doctrine_orm_date', [], 'sonata_type_datetime_picker',
$this->getDatePickerDefinitions(2, true, 3))
->add('plannedDistributions', null, [], null,
$this->getEntityDefinitions('AppBundle:DistributionChannel', 1, true, 4))
}
...这为我提供了一个不错的UI,其中包括应用程序中“计划的发行”字段的下拉列表。
现在,我想为完成的发行版添加另一个下拉列表。我添加以下内容:
->add('distributions', null, [], null,
$this->getEntityDefinitions('AppBundle:DistributionChannel', 1, true, 4))
...但是在重新加载列表视图时,我收到以下消息:
选项“选择”,“多个”不存在。定义的选项包括: “动作”,“ allow_extra_fields”,“ attr”,“自动初始化”, “ block_name”,“ by_reference”,“ cascade_validation”,“ compound”, “约束”,“ csrf_field_name”,“ csrf_message”,“ csrf_protection”, “ csrf_provider”,“ csrf_token_id”,“ csrf_token_manager”,“数据”, “ data_class”,“ description”,“ disabled”,“ empty_data”, “ error_bubbling”,“ error_mapping”,“ extra_fields_message”, “ horizontal_input_wrapper_class”,“ horizontal_label_class”, “ horizontal_label_offset_class”,“ inherit_data”,“意图”, “ invalid_message”,“ invalid_message_parameters”,“ label”, “ label_attr”,“ label_format”,“ label_render”,“映射”,“ max_length”, “方法”,“模式”,“ post_max_size_message”,“ property_path”, “只读”,“必需”,“ sonata_admin”,“ sonata_field_description”, “ sonata_help”,“ translation_domain”,“修剪”, “ upload_max_size_message”,“ validation_groups”,“虚拟”。
我不相信我曾尝试在configureDatagridFilters
方法中定义任何“选择”或“多个”选项。这可能是怎么回事?
答案 0 :(得分:0)
这很容易-getEntityDefinitions()
方法包含对这些字段的引用。
public function getEntityDefinitions($entityName, $innerSort = null, $extended = false, $sort = 1)
{
return array(
'choices' => $this->entityManager->getRepository($entityName)->getSortedElements($this->getLocale()),
'multiple' => true,
'attr' => array(
'data-extended' => $extended,
'data-sort' => $sort,
'data-inner-sort' => $innerSort
)
);
}