簡體   English   中英

SonataAdminBundle:創建自定義過濾器類型

[英]SonataAdminBundle: Create custom filter type

有沒有一種方法可以為SonataAdminBundle創建自定義過濾器類型,該類型可以擴展其他類型,例如doctrine_orm_callback類型? 這個想法是在其他過濾器中重用自定義類型

public function configureDatagridFilters(DatagridMapper $datagridMapper)
{

    $datagridMapper
        ->add('field', 'doctrine_orm_callback', array(
            'callback' => function($queryBuilder, $alias, $field, $value) {
                if (!$value['value']) {
                    return;
                }

                $queryBuilder->leftJoin(sprintf('%s.field', $alias), 'field')
                    ->andWhere("field LIKE :field")
                    ->setParameter('field', "%{$value['value']}%");

                return true;
            },
            'field_type' => 'search'), null, array('pattern' => '^[A-Za-z0-9]{1,12}$'));
}

謝謝!

檢查此鏈接,然后嘗試:

->add('with_open_comments', 
      'doctrine_orm_callback', 
      array('callback'   => array($this, 'yourFunction'),
            'field_type' => 'search'), 
      null, 
      array('pattern' => '^[A-Za-z0-9]{1,12}$'));

    public function yourFunction($queryBuilder, $alias, $field, $value)
    {
        if (!$value['value']) {
           return;
        }

        $queryBuilder->leftJoin(sprintf('%s.field', $alias), 'field')
                    ->andWhere("field LIKE :field")
                    ->setParameter('field', "%{$value['value']}%");

        return true;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM