Domanda

I può caricare un indirizzo utilizzando il seguente codice:

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

Il problema è che street è un array quando tornai nell'oggetto indirizzo in modo come posso aggiungere street nei miei filtri di cui sopra?

So che avrei potuto caricare tutti gli indirizzi e ciclo attraverso di loro nel codice quindi confrontare la matrice con i miei dati, ma vorrei evitare questo passaggio, se possibile, una è in testa in più.

È stato utile?

Soluzione

Questo dovrebbe funzionare:

->addAttributeToFilter('street', 'somewhere');

o del presente, se si desidera che il filtro like

->addAttributeToFilter('street', array('like'=>'%somewhere%'));

Anche se la strada è riportata come un vettore, in cui il database è tenuto come un unico campo. I valori nella matrice sono concatenati da \n.
Se siete alla ricerca di un indirizzo esatto, che si sviluppa su 2 linee questo dovrebbe farlo:

->addAttributeToFilter('street', 'somewhere\nelse');
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top