我认为这个问题的答案与您的另一个问题(Sulu CMF - CRUD Filtered Multi-Item-Selection for association entity)非常相似。听起来您想为DataGroup
实体实现选择。正如您的其他问题的答案中已经包含的那样,Sulu Workshop和Sulu Demo都包含如何执行此操作的代码示例。
您可以通过SuluAdminBundle
使用以下命令打印 的配置参考来检查您选择字段类型的所有可用配置选项:
bin/console config:dump-reference sulu_admin
Sulu 使用相同的机制为内置实体(如contact_selection
或 )注册选择字段类型single_account_selection
。这意味着您的自定义选择字段类型支持内置字段类型支持的相同参数,可以在 Sulu 文档中找到。
例如,如果您想在加载可选项目时添加一个发送到服务器的request_parameters
参数,您可以resource_store_properties_to_request
在表单配置中使用param 或param 。一个例子可能是这样的:
<property name="custom_selection" type="custom_selection">
<params>
<param name="request_parameters" type="collection">
<param name="static-parameter" value="static-value" />
</param>
<param name="resource_store_properties_to_request" type="collection">
<param name="dynamic-parameter" value="other-property-name" />
</param>
</params>
</property>
此选择字段类型将使用配置的资源键的列表路由来加载可选项目。要真正过滤可选项目,您需要在列表路由的控制器中处理选择字段类型发送的参数。如果您ListBuilder
在此控制器中使用 Sulu服务,过滤可能如下所示:
$filterValue = $request->query->get('static-parameter');
$listBuilder->where($fieldDescriptors['filtered-property-name'], $filterValue);