Допустим, я нахожусь в виде списка для моего администратора 'Example', а в примере есть ManyToOne
с моей сущностью 'Foo'.Затем у Foo есть ManyToOne
с другой сущностью под названием 'Bar'.
Например, в моем представлении списка я хотел бы иметь возможность фильтровать по сущности 'Bar', но также использовать что-то вроде ModelAutocompleteType
.Причина в том, что у сущности Bar есть много записей, например, EntityType
.
Также стоит отметить, что в моем примере сущности у меня есть метод с именем getBar
.Я попробовал следующее:
protected function configureDatagridFilters(DatagridMapper $filter)
{
$filter
->add('foo.bar', CallbackFilter::class, [
'callback' => function ($queryBuilder, $alias, $field, $value) {
if (!isset($value['value'])) {
return;
}
$queryBuilder
->join('e.foo', 'f')
->join('f.bar', 'b');
},
], ModelAutocompleteType::class, [
'property' => 'name',
]);
}
Это дает мне следующую ошибку:
Аргумент 1 передан Sonata \ AdminBundle \ Form \ DataTransformer \ ModelToIdPropertyTransformer :: __ construct ()должен реализовывать интерфейс Sonata \ AdminBundle \ Model \ ModelManagerInterface, значение NULL которого вызывается в /var/www/symfony/vendor/sonata-project/admin-bundle/src/Form/Type/ModelAutocompleteType.php в строке 37
Любая помощь будет отличной.