我可以使用以下代码加载地址:

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

问题是 street 是在地址对象中返回时的数组,因此如何添加 street 进入上面的过滤器?

我知道我可以在代码中加载所有地址并通过它们循环循环,然后将数组与我的数据进行比较,但是如果可能的话,我想避免使用此步骤。

有帮助吗?

解决方案

这应该有效:

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

或这个,如果你愿意 like 筛选

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

即使将街道作为数组返回,数据库也将作为单个字段保存。数组中的值由 \n.
如果您正在寻找一个在2行上的确切地址,则应该这样做:

->addAttributeToFilter('street', 'somewhere\nelse');
许可以下: CC-BY-SA归因
scroll top