【发布时间】:2017-07-02 05:51:28
【问题描述】:
我正在努力在模板中获取一个变量,该模板包含一个 DataObjects 的 GroupedList,这些 DataObjects 与另一个 DataObject 具有 has_one 关系。
示例: 我的 DataObject Team 属于一个区域。当我获得按 RegionID 分组的团队的 GroupedList 时,我不知道如何访问模板中的 Region.NAME。
class Region extends DataObject {
private static $db = array (
'NAME' => 'Varchar(128)',
'INFO' => 'Varchar(128)',
'PUBLIC' => 'Boolean'
);
public static $has_many = array(
'Teams' => 'Team'
);
}
class Team extends DataObject {
private static $db = array (
'NAME' => 'Varchar(255)',
'LEAGUE' => 'Varchar(255)',
'SORTNO' => 'Int'
);
public static $has_one = array(
'Region' => 'Region'
);
}
class TeamRegionPage extends Page {
public function getRegionGroupedTeams(){
return GroupedList::create(Team::get()->filter(array('PUBLIC' => 1))->sort('RegionID, SORTNO'));
}
}
TeamRegionPage.ss
<% loop $getRegionGroupedTeams.GroupedBy(RegionID) %>
<h2>Region name from has_one here: {$Region.NAME}</h2>
<% loop $Children %>
$NAME<br>
<% end_loop %>
$Region.NAME 在模板中不起作用,我尝试了其他一些方法。我觉得解决方案很明显,但我看不到它,我被卡住了。
【问题讨论】:
标签: templates variables grouping silverstripe has-one