是否有一种简单的方法可以使用 Silverstripe 中数据透视表上的 id 列表来获取模型列表?

问题描述 投票:0回答:0

我正在使用 Silverstripe 4,我正在尝试使用 ORM 执行简单查询。

我有三个模型(一个 Page 和一个 DataObject )。

他们使用类中的助手相关:

ProductHolder.php

class ProductHolderPage extends Page
{
    private static $allowed_children = [
        ProductPage::class,
    ];
}

ProductPage.php

class ProductPage extends Page
{
    private static $many_many = [
        'Categories' => ProductCategory::class,
    ];
}

ProductCategory.php

class ProductCategory extends DataObject
{
    private static $belongs_many_many = [
        'ProductPages' => ProductPage::class,
    ];
}

在我的持有人页面上,我想做类似

$this->Children()->filter('ProductPage_Categories.ID', $ID);

的事情

这似乎不可能,因为该关系在该查询中不可用。

我已经检查了 DOCS 和 API 以获取使用左连接的示例,但没有发现任何有用的东西。

文档中有一个左连接示例,但之后没有过滤器。我不明白我是否可以按连接的表列或实际发生的情况进行过滤。有没有人参考过关于此功能的一些好的文档或如何正确使用它的示例?

silverstripe silverstripe-4
© www.soinside.com 2019 - 2024. All rights reserved.