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.

¿Fue útil?

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
scroll top