So laden Sie eine Adresse durch Straßenattribut
-
16-10-2019 - |
Frage
Ich kann eine Adresse mit dem folgenden Code laden:
$addresses = $addressObj->getCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('firstname', $addressData['firstname'])
->addAttributeToFilter('lastname', $addressData['lastname'])
->addAttributeToFilter('city', $addressData['city'])
->addAttributeToFilter('postcode', $addressData['postcode'])
->addAttributeToFilter('telephone', $addressData['telephone'])
->load();
Das Problem ist das street
ist ein Array, wenn es im Adressobjekt zurückgegeben wird. Wie kann ich also hinzufügen? street
in meine Filter oben?
Ich weiß, ich könnte alle Adressen laden und sie im Code durchlaufen und das Array mit meinen Daten vergleichen, aber ich möchte diesen Schritt vermeiden, wenn möglich, dass es einen zusätzlichen Aufwand ist.
Lösung
Das sollte funktionieren:
->addAttributeToFilter('street', 'somewhere');
oder das, wenn Sie wollen like
Filter
->addAttributeToFilter('street', array('like'=>'%somewhere%'));
Selbst wenn die Straße als Array zurückgegeben wird, wird in der Datenbank als einzelnes Feld aufbewahrt. Die Werte im Array werden durch verkettet durch \n
.
Wenn Sie nach einer genauen Adresse suchen, die in 2 Zeilen liegt, sollte dies dies tun:
->addAttributeToFilter('street', 'somewhere\nelse');
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange