PIMCORE 相关对象偏移量



我正在做一个pimcore项目(version 4.4.3),但对pimcore本身来说仍然很新。

首先,我在管理面板中制作了一个名为'Event'的对象,并添加了一个名为'speakers'.的数据component -> relation ->对象

现在我有一个需要返回这些扬声器的controllerAction,但我不希望一次将它们全部返回,所以我希望添加一个限制和偏移量。

$eventClass->getSpeakers()的结果返回一个数组,其中包含我似乎无法在其上放置任何过滤器的对象。 当然,我可以在检索到所有它们后过滤它们,但如果可能的话,我想在我的请求中过滤它们。

所以我的问题是,如何过滤object上的相关对象?

恐怕目前您只能使用 SQL 来做到这一点。它将看起来像这样:

SELECT dest_id FROM object_relations_5 where fieldname = 'speakers' and src_id = 123 LIMIT 10;

其中 5 应该是类的 id,123 应该是对象的 id。您可以联接其他表以执行更多筛选,但这变得越来越复杂。

通常,如果必须编写自定义 SQL 代码,则数据模型有问题。也许您的"扬声器"类应该与"事件"具有单个 href 关系 - 这样您就可以轻松列出具有所需过滤功能的扬声器列表。

您可以使用 List 对象

$speakerId = 123;
$list = new PimcoreModelObjectEventListing();
$list->setCondition("speakers like '%,".$speakerId.",%'");

但您只能使用扬声器的 ID 过滤扬声器。如果要使用其他属性过滤它们,则必须与表进行连接object_relations_ClassID。

另请查看以下链接 https://pimcore.com/docs/4.6.x/Development_Documentation/Objects/Object_Classes/Data_Types/Relation_Types.html#page_Filtering-for-relations-via-PHP-api

相关内容

最新更新