gpt4 book ai didi

loops - SilverStripe 添加到 DataList 子 DataList

转载 作者:行者123 更新时间:2023-12-01 00:31:05 24 4
gpt4 key购买 nike

我正在尝试为模板中循环内的循环创建一个带有子 DataList 的 DataList:

public function getAllCategoriesAndEntrys(){
$categories = FitoCategory::get();

foreach ($categories as $category) {
$category->entries = $this->Items($category->ID);
}

return $categories;
}

我的模板是这样的:

<% loop getAllCategoriesAndEntrys() %>
$ID $Title <br>
<% loop entries %>
------ $Title <br>
<% end_loop %>
<% end_loop %>

在我的示例中,我确信:

FitoCategory::get() - 以对象类型 DataList 返回我的所有“FitoCategory”;

$this->Items($category->ID) - 返回 DataList,其中包含 FitoCategory 的所有子条目(按 ID);

我需要一个绑定(bind)代码:

$category->entries = $this->Items($category->ID);

最佳答案

目前,查询运行未缓存,因此每次循环列表时都会创建新的 FitoCategory 对象。这意味着任何其他属性都会丢失。

相反,您希望将对象添加到 ArrayList 并返回它。

public function getAllCategoriesAndEntrys(){
$categories = FitoCategory::get();
$list = ArrayList::create();

foreach ($categories as $category) {
$category->entries = $this->Items($category->ID);
$list->push($category);
}

return $list;
}

关于loops - SilverStripe 添加到 DataList 子 DataList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26182482/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com