2016-01-07 78 views
1

我想知道如何在formFilter中添加條件。Sylius,如何重寫標準?

例如,在後端產品索引中。 默認情況下,只有「名稱」和「參考」過濾器。我想添加任何字段的過濾器。

enter image description here

我設法自定義字段添加到窗體,但是當我點擊過濾器按鈕,我的自定義字段被忽略。

我該如何修復它?

回答

0

您必須使用自己的ProductRepositoryClass擴展/替換 Sylius\Bundle\CoreBundle\Doctrine\ORM\ProductRepository.php。 您需要修改的方法是上線88:createFilterPaginator

<?php 
namespace Acme\AppBundle\Doctrine\ORM; 

use Sylius\Bundle\ProductBundle\Doctrine\ORM\ProductRepository as BaseProductRepository; 

class ProductRepository extends BaseProductRepository { 

public function createFilterPaginator($criteria = array(), $sorting = array(), $deleted = false) 
    { 
    // ... your filtering logic here. 
    } 
} 

然後將其註冊在cofiguration,因此它將取代sylius產品庫。

sylius_product: 
    resources: 
     product: 
      classes: 
       repository: AppBundle\Entity\Product\ProductRepository 

如果你想/需要調用diferent方法吳丹的createFilterPaginator,你將不得不也覆蓋控制器。