Land in Kundenübersicht

Hallo zusammen,

ich stecke hier fest und hoffe, in die richtige Richtung gestoßen zu werden. Ich möchte der Kundenübersicht im Backend die Spalte „Land“ hinzufügen. Dafür hooke ich in den Querybuilder des CustomerQuickview Controllers und möchte und erweitere die Query folgendermaßen:

public function extendQuery ( \Enlight_Hook_HookArgs $args)
{
        
 $query = $args->getReturn();
        
 $query->addSelect(array('billing.country as billing_country'));

 $args->setReturn($query);

}

Dabei kommt ein DQL Fehler heraus, weil das Feld, wie ich im Address Model sehe, wohl nicht direkt verfügbar ist, sondern hier irgendetwas mit Assoziationen geschehen muss? Die devdocs und das Forum konnten meine Wissenslücken dazu nicht wirklich schließen. Ich gehe davon aus, irgendwie an das Feld „name“ des Country Models kommen zu müssen. Ist das per Hook in diese Methode möglich und wenn ja wie?

 

Danke schonmal im vorraus

Hallo bbihl,

das Billing Model hat nur über die countryId eine Verknüpfung zum Country Model. Daher musst Du den Join wohl selbst machen:

$query->addSelect('country.name as countryname');
$query->leftJoin('Shopware\Models\Country\Country', 'country', \Doctrine\ORM\Query\Expr\Join::WITH, 'billing.countryId = country.id');

 

1 „Gefällt mir“

Hi MrMDeluxe,

hat funktioniert wie gewünscht, danke für die schnelle Hilfe.