可以说我在管理员“示例”的列表视图中,并且示例中有一个ManyToOne
和我的实体“ Foo”。然后,Foo与另一个名为“ Bar”的实体有一个ManyToOne
。
例如,在我的列表视图中,我希望能够按实体“ 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',
]);
}
这给了我以下错误:
传递给Sonata \ AdminBundle \ Form \ DataTransformer \ ModelToIdPropertyTransformer :: __ construct()的参数1必须实现接口Sonata \ AdminBundle \ Model \ ModelManagerInterface,给定为null,在/ var / www / symfony / vendor / sonata-project /中调用第37行的admin-bundle / src / Form / Type / ModelAutocompleteType.php
任何帮助都会很棒。