2016-01-07 46 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,你将不得不也覆盖控制器。