進入索納塔,我有一個預訂管理員。索納塔 - 如何在動態屬性上創建過濾器?
在這個管理員我有一些字段存儲到數據庫像「姓氏」,「名字」或「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