Magento:getCustomer-> getAddresses()的排序顺序

时间:2019-02-17 19:49:11

标签: magento

我正在尝试更改送货地址的Magento结帐下拉菜单(选择)中使用的地址集合的排序顺序。

我想将排序顺序更改为“公司名称”,而不是默认的ID。

foreach ($this->getCustomer()->getAddresses() as $address) {
                $options[] = array(
                    'value' => $address->getId(),
                    'label' => $address->format('oneline')
                );
            }

我已经尝试适应以下情况:

foreach ($this->getCustomer()->getAddresses()->addAttributeToSort('company', 'ASC') as $address) {

但这会导致错误。

有什么建议吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

如果您调用getAddresses(),则该集合已加载,您将无法再进行排序。您必须先访问集合,然后再加载它。

尝试一下:

$addressCollection = $this->getCustomer()->getAddressesCollection()->addAttributeToSort('company', 'ASC');
$addresses = $addressCollection->getItems();

foreach ($addresses as $address){
 //...do whatever you need
}