2017-09-19 12 views
-1

検索対象のものから検索を開始するフィルタを作成したいと思います。symfony sonata admin filter "start with"

たとえば、「92」から始まる郵便番号を検索しています。現在のフィルターでは、私には "92000"が与えられますが、最初のフィルターだけが必要なときには "29200"にもなります。

SQlでは、 "$ value%のような郵便番号"などとなります。

2番目の最初の答えの後に編集:

私はカスタムコールバックを試しました。しかし、この例は、リンクされたエンティティがチェックボックスとして表示されているため、エンティティ内のフィールドに「何かのようなものがあります」としたいだけです。左ジョイントはありません!ここで

は、これまでの私のコードですが、私は得る「警告:不正な文字列オフセット 『の値を』」「トレーナー」

+0

何を試しましたか?あなたが試したことを含める必要があります。私たちはあなたが問題を解決するのを手伝っていきます。 – OptimusCrime

答えて

0

あなたが必要

$this->datagrid->add('postCode', 'doctrine_orm_callback', array(
      'callback' => function($queryBuilder, $field, $value) { 
       if (!$value['value']) { 
        return; 
       } 
       $queryBuilder->andWhere('s.postCode like :value'); 
       $queryBuilder->setParameter('value', $value); 

       return true; 
      } 
     )); 

フィールドは、エンティティの「郵便番号」です"custom callback filter"を使用して、必要なルールをqueryBuilderに設定します。

Sonata documentation on filtersで詳しく説明しています。

関連する問題