通过Magento中的自定义属性查找客户

Nic*_*ons 4 magento

我有一个名为rms_id的自定义属性.这是一个与我们在另一个数据库中的客户相关联的唯一帐号.我需要一种方法来通过此ID查找客户,而无需手动访问数据库.

截至目前,我可以通过电子邮件地址加载客户,如下所示:

$customer->loadByEmail($data['email']);
Run Code Online (Sandbox Code Playgroud)

这很棒,但电子邮件并不总是可用.RMS id是.有没有办法通过自定义属性加载用户?

从理论上讲,以下方法可行:

$customer->loadByRmsId($data['account_id']);
Run Code Online (Sandbox Code Playgroud)

但它出错了.任何帮助将非常感激.

ben*_*rks 18

核心有一个很好的例子; 见Mage_Catalog_Model_Abstract::loadByAttribute()[link].它涉及使用数据模型检索集合,将属性加入,以及按该属性过滤.如果属性不是静态的,即不是实体表的一部分,则这是必要的.

$result = Mage::getModel('customer/customer')
              ->getCollection()
              ->addAttributeToSelect('rms_??id')
              ->addAttributeToFilter('rms_id',{Val})->load();

if (is_object($result)) {
    /* Logic */
}
Run Code Online (Sandbox Code Playgroud)

  • 要真正获得客户(如果你有一个唯一的值,所以只过滤掉一个),你可以在` - > load()`之后添加` - > getFirstItem()`. (6认同)