Silverstripe 4中的GroupedList,由many_many_extrafield分组

时间:2019-02-17 23:43:19

标签: php group-by many-to-many field silverstripe-4

我有两个与many_many和一个extrafield有关的数据对象。我的计划是按结果将结果分组。也许有人有主意。

class Saison extends DataObject {
    private static $db = [
    "Name"=> "Varchar(200)",
    "Jahr" => "Int(4)"
    ];

    private static $many_many = [
    "Team" => Teams::class
    ];

    private static $many_many_extraFields = [
    'Team' => [
            'Gruppe' => 'Varchar'
        ]
    ]; }

class Teams extends DataObject {

    private static $db = [
    "Name" => "Varchar(300)",
    "TeamName" => "Varchar(300)"
    ];

    private static $has_one = [
    ];

    private static $has_many = [
    ];

    private static $belongs_many_many = [
    "Saison"=>Saison::class
    ]; }

function Teams() {

    return GroupedList::create(Saison::get()->filter(array("ID" => $this->Saison()->ID)));

<% loop $Teams %>

<% loop $Team.GroupedBy(Gruppe) %>
$Gruppe<br />
<% end_loop %>

<% end_loop %> 

通过这种方式,我无法获取数据。

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。 由于many_many和belongs_many_many,所以有一个名为Saison_Team的表。我刚刚创建了一个使用此表的Saison_Team类。这样我就可以使用此数据对象及其关系了。