我为一个产品定义了一个属性,该产品将包含逗号分隔的值列表。这背后的想法是,我可以将此产品与其他产品交叉引用。
伪代码看起来有点像这样: 查找属性“cross_ref”类似于'%1234%'
的所有产品cross_ref属性将包含“1234,5678,abcd”等内容 我尝试了以下但是它没有返回任何产品:
$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addAttributeToSelect('*');
$collection->addFieldToFilter('cross_ref',array('like'=> '1234'));
//$collection->addAttributeToFilter('cross_ref',array('like'=> '1234')); // This didn't work either
foreach ($collection as $product) {
var_dump($product->getData());
}
此代码不会返回任何内容。
我是如何实现这一目标的?
谢谢
答案 0 :(得分:3)
您似乎忘记了%符号以匹配字符串的子部分:'like' => '%1234%'
。
但是,如果您不希望1234与12345匹配,您可能希望在查询中包含逗号,并且在字符串的开头或结尾也不允许使用逗号:
$collection->addFieldToFilter('cross_ref', array(
array('like'=> '%,1234,%'),
array('like'=> '1234,%'),
array('like'=> '%,1234'),
));