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, который использует эту таблицу. Так что я могу использовать этот объект данных и отношения.