Hi,
im Backend benötige ich auf der Bestellseite die Möglichkeit, nach der Rechnungsnummer zu filtern und diese auch im Grid anzuzeigen. Das klappt soweit prima mit einem Custom Modul (Auszug):
$definition ->getColumns() ->addAfter( 'id_order', (new DataColumn('invoice_number')) ->setName($this->l('Invoice #')) ->setOptions([ 'field' => 'invoice_number' ]) );
Funktioniert wie erwartet mit einem Problem: Das Input-Element für den Filter / die Suche wird mit dem Attribut required="required" gerendert und muss also immer ausgefüllt werden, wenn man die Bestellungen durchsuchen bzw. filtern möchte. Hat jemand eine Idee, wie man das Attribut entfernen kann bzw. dem neuen Feld mitgeben kann, dass es kein Pflichtfeld sein soll? DataColumn hat leider keine solche Option (required) oder Methode (setRequired).
Hat sich erledigt, habe natürlich an der falschen Stelle gesucht. Hier die Lösung, vielleicht hilft es ja jemandem:
public function hookActionOrderGridDefinitionModifier(array $params) { /** @var GridDefinitionInterface $definition */ $definition = $params['definition']; $definition ->getColumns() ->addAfter( 'id_order', (new DataColumn('invoice_number')) ->setName($this->l('Invoice #')) ->setOptions([ 'field' => 'invoice_number' ]) ); // search filter $definition->getFilters()->add( (new Filter('invoice_number', TextType::class)) ->setAssociatedColumn('invoice_number') ->setTypeOptions(array('required' => false)) ); }