Wie kann ich erstellen Sie eine benutzerdefinierte DataGrid-filter in SonataAdmin
Ich habe eine Organisations-Transaktion mit zahlreichen status-codes.
Ich möchte die Benutzer in der Lage sein zu sehen, diese status-codes als strings in SonataAdmin. Der Benutzer sollte auch in der Lage sein zu filtern, die auf der Grundlage dieser status-codes.
Entity Transaction
{
const TRANSACTION_STATUS_WAITING = 1;
const TRANSACTION_STATUS_PENDING = 2;
const TRANSACTION_STATUS_CONFIRMED = 3;
/**
* Set status
*
* @param smallint $status
*/
public function setStatus($status)
{
$this->status = $status;
}
/**
* Get status
*
* @return smallint
*/
public function getStatus()
{
return $this->status;
}
public function getStatusAsString()
{
switch($this->status){
case(self::TRANSACTION_STATUS_WAITING): return "Waiting for Merchant";
case(self::TRANSACTION_STATUS_PENDING): return "Pending Confirmation";
case(self::TRANSACTION_STATUS_CONFIRMED): return "Confirmed";
}
}
}
Ich so konfiguriert haben, dass mein Sonata Liste Mapper wie diese:
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->addIdentifier('id')
->add('statusAsString', null, array('sortable' => true, 'label' => 'Status'))
}
funktioniert perfekt in Ordnung zu sein:
Aber ich bin nicht in der Lage zu verwenden, das gleiche wie ein Filter.
Wenn ich es versuchen:
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper
->add('user')
->add('status') //Works well
->add('statusAsString', null, array('label' => 'Status')) //Doesn't work:
;
}
Funktioniert das nicht. Es gibt die folgende Fehlermeldung ->
Notice: Undefined index: statusAsString in ..../Sonata\DoctrineORMAdminBundle\Guesser\FilterTypeGuesser.php
Wie kann ich machen, damit es funktioniert?
InformationsquelleAutor Amit | 2012-04-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser arbeitete als vorübergehende Lösung für mich. Wenn jemand eine bessere Lösung haben, bitte teilen.
In der Entität
InformationsquelleAutor Amit
Sowas
InformationsquelleAutor Ivan Fateev