GroupedList в Silverstripe 4, сгруппированный по параметру many_many_extrafield

У меня есть два объекта data, связанных с many_many и дополнительным полем. Мой план - сгруппировать результат по дополнительному полю. Может быть, у кого-то есть идея.

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 ответ

Я нашел решение. Из-за many_many и own_many_many существует таблица Saison_Team. Я только что создал класс Saison_Team, который использует эту таблицу. Так что я могу использовать этот объект данных и отношения.

Другие вопросы по тегам