質問

次のコードを使用してアドレスをロードできます。

$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帰属
所属していません magento.stackexchange
scroll top