进入索纳塔,我有一个预订管理员。索纳塔 - 如何在动态属性上创建过滤器?
在这个管理员我有一些字段存储到数据库像“姓氏”,“名字”或“ref”。我还有一个非DB数据库存储的字段“状态”,它在我的预订实体中定义为这样。
public function getState(){
if (/*Complex condition*/)
return 'canceled_not_refund';
else if (/*Complex condition*/)
return 'canceled';
else if (/*Complex condition*/)
return "no-payment";
else if (/*Complex condition*/)
return "partial_payment";
else if (/*Complex condition*/)
return "ok";
else if(/*Complex condition*/)
return "ended";
}
我试图定义的“状态”栏中的过滤器,但我得到:
[Semantical Error] line 0, col 87 near 'state = :sta': Error: Class MyBundle\Entity\Booking has no field or association named state
有没有一种方法来定义这种过滤器的进索纳塔管理员?
请帮忙!
我没有看到任何方法。索纳塔将不得不将所有实体加载到内存中并对其进行过滤。所有[过滤方法](https://sonata-project.org/bundles/doctrine-orm-admin/master/doc/reference/filter_field_definition.html#filter-field-definition)都可以使用QueryBuilder。 – Lumen