Sulu:如何查询自定义实体类型?

问题描述

我已经定义了自定义实体类型“匹配”并且它是后端可编辑的,一切都按预期工作。

现在我需要一种方法来查询该类型的内容。智能内容字段类型可以做到这一点吗?我希望像这样的 xml 可以解决问题:

   <property name="matches" type="smart_content">
        <!-- @see https://docs.sulu.io/en/2.2/reference/content-types/smart_content.html -->
        <meta>
            <title lang="en">Matches</title>
            <title lang="de">Streichhölzer</title>
        </meta>

        <params>
            <param name="provider" value="lists"/>
            <param name="types" value="matchevents"/>
            <param name="max_per_page" value="5"/>
            <param name="page_parameter" value="m"/>
        </params>
    </property>

但这并没有帮助。可以用“smart_content”字段类型完成吗?我是的 - 怎么样?如果不是 - 实现这一目标的最佳方法是什么?

解决方法

您必须为您的实体创建一个自定义 DataProvider,然后在 xml 定义中使用您的提供程序。

因此您必须创建一个实现 DataProviderRepositoryInterface 的存储库。该存储库用于查询实体。 此外,您还必须创建实际的数据提供者服务。此类应从 BaseDataProvider 扩展,最后您必须使用标记 sulu.smart_content.data_provider 和别名来创建服务定义。

别名用于 xml 文件中,例如

   <property name="matches" type="smart_content">
    <meta>
        <title lang="en">Matches</title>
        <title lang="de">Streichhölzer</title>
    </meta>

    <params>
        <param name="provider" value="myCustomDataProviderAlias"/>
    </params>
</property>

查看有关如何创建自定义数据提供程序的分步教程的文档。 https://docs.sulu.io/en/2.2/cookbook/smart-content-data-provider.html#how-to-create-a-custom-dataprovider

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...