ModelAdmin: filter by $many_many with a dropdown
When you have a DataObject with a $many_many "Tags" => "Tag" you can add a filter dropdown in ModelAdmin by overwriting the scaffoldSearchFields() method:
private static $many_many = [
'Tags' => 'Tag'
];
private static $searchable_fields = [
'Title',
'Description',
'Tags.Title' => [
"field" => "DropdownField",
"filter" => "ExactMatchFilter",
"title" => 'Tag'
]
];
/*
...
*/
public function scaffoldSearchFields($_params = null) {
$fields = parent::scaffoldSearchFields($_params);
$tagDropdown = DropdownField::create(
'Tags.Title',
'Tag',
Tag::get()->map('Title', 'Title')->toArray()
);
$fields->replaceField('Tags__Title', $tagDropdown);
return $fields;
}
Post your comment
Comments
No one has commented on this page yet.
RSS feed for comments on this page | RSS feed for all comments