2017-09-19 3 views
-1

Ich möchte einen Filter erstellen, bei dem die Suche nur die Einträge enthält, die mit dem beginnen, was gesucht wird.symfony sonata admin filter "start with"

Zum Beispiel suche ich nach einer Postleitzahl beginnend mit "92". Mit dem aktuellen Filter gibt es mir "92000", aber auch "29200" wenn ich nur den ersten will.

In SQl wäre "wo PLZ wie $ Wert%" oder so ähnlich.

bearbeiten, nachdem die 2 ersten Antworten:

habe ich versucht, den benutzerdefinierten Rückruf. Aber das Beispiel ist ein für eine verknüpfte Entität, die als ein Kontrollkästchen angezeigt wird, und ich möchte nur ein "wo wie etwas%" für ein Feld in der Entität. Kein Linksjoin!

Hier ist mein Code so weit, aber ich erhalte "Warnung: Illegal String Offset 'Wert'"

$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; 
      } 
     )); 

Das Feld

+0

Was haben Sie versucht? Sie sollten angeben, was Sie versucht haben, und wir werden versuchen, Ihnen zu helfen, das Problem zu lösen. – OptimusCrime

Antwort

0

Sie ein 'Postleitzahl' in der Einheit 'Trainer' ist, müssen "benutzerdefinierter Rückruffilter", um die erforderlichen Regeln für den queryBuilder festzulegen.

Es ist gut in Sonata documentation on filters abgedeckt.

Verwandte Themen