6

我在 Silverstripe 3.1 中有三个 DataObjects:一个问题、一个投票和一个投票者。问题有很多投票;投票有一个投票者和一个问题。在我的 Issue_show 页面上,我想显示所有问题的投票,按投票者姓名排序。

问题中的函数如下所示:

public function MyVotes() {
     return $this->Votes();
}

但我不知道如何访问选民姓名以对其进行排序。据推测,它应该是这样的

public function MyVotes() {
    return $this->Votes()->sort('Voter.Name');
} 

但这会引发错误。我错过了什么步骤?

4

2 回答 2

7

对于 has_one 关系,您需要将 ID 后缀添加到字段名。此外,不幸的是,DataList->sort() 中的关系转换仅适用于数组。

public function MyVotes() {
return $this->Votes()->sort(array('VoterID.Name'=>'ASC'));
}
于 2013-11-13T09:52:19.333 回答
1

您还可以像这样在模板中处理排序:

<% loop Votes.Sort('VoterID.Name') %>
    ...

这尚未经过测试,但很确定应该可以

于 2016-01-26T16:50:07.030 回答