Silverstripe 3.3 循环不获取值

Silverstripe 3.3 Loop in loop not getting values

早上好,

我正在为一个不起作用的循环而苦苦挣扎。我想通过循环访问一些产品来生成一个 xml 文件,在我的例子中是 5 个。我已经将产品放在数组列表中,它们按预期显示,但随后我想在该循环中循环遍历另一个包含该产品汽车的数组列表。这就是我的问题所在。

    <% loop $getProducts %>
        <% loop $getCars($ID) %>
            <item>$ID</item>
        <% end_loop %>
    <% end_loop %>

这是我的模板文件,其中包含我正在谈论的循环。 $getProducts 正在工作,如果我在 getProducts 循环中打印 $ID 它工作正常。但是 $getCars 是空的,只显示 < item > >

controller中的函数就是那些。

public function getProducts() {
    return GoogleShoppingFeed::mergeProductsAutos();
}

public function getCars($productID) {
    return GoogleShoppingFeed::getCarsByProduct($productID);
}

函数 mergeProductsAutos 工作正常。

public static function getCarsByProduct($productID = null) {
    if($productID) {
        switch($productID){
            case 127: 
                return self::$example1;
                break;
            case 126: 
                return self::$example2;
                break;
            case 781:
                return self::$example3;
                break;
            case 2924:
                return self::$example4;
                break;
            case 993:
                return self::$example5;
                break;
            case 5195:
                return self::$example6;
                break; 
        }
    } else {
        return false;
    }
}

这个函数应该return填充数组列表,它们被正确填充所以没有问题。

抱歉我的英语很糟糕,但我希望有人能帮助我!谢谢。

问题已解决。

    <% loop $getProducts %>
        <% loop $Up.getCars($ID) %>
            <item>$ID</item>
        <% end_loop %>
    <% end_loop %>