Cómo cargar una dirección por atributo callejero
-
16-10-2019 - |
Pregunta
Puedo cargar una dirección usando el siguiente código:
$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();
El problema es que street
es una matriz cuando se devuelve en el objeto de dirección, entonces, ¿cómo puedo agregar? street
¿En mis filtros arriba?
Sé que podría cargar todas las direcciones y recorrerlas en código, luego comparar la matriz con mis datos, pero me gustaría evitar este paso si es posible, es una sobrecarga adicional.
Solución
Esto debería funcionar:
->addAttributeToFilter('street', 'somewhere');
o esto, si quieres like
filtrar
->addAttributeToFilter('street', array('like'=>'%somewhere%'));
Incluso si la calle se devuelve como una matriz, en la base de datos se mantiene como un solo campo. Los valores en la matriz se concatenan por \n
.
Si está buscando una dirección exacta que esté en 2 líneas, esto debería hacerlo:
->addAttributeToFilter('street', 'somewhere\nelse');
Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange