我希望按标记名称过滤标记/ product_collection资源模型。
因为我已经写了下面的代码
$collection = Mage::getResourceModel('tag/product_collection');
$collection->addFieldToFilter("name",array('like'=>'%dixit%'));
print_r($collection->getData());
然后它只显示空数组。
如果我要发表评论
$collection->addFieldToFilter("name",array('like'=>'%dixit%'));
此行然后显示在下面的输出
Array ( [0] => Array ( [entity_id] => 323 [entity_type_id] => 4 [attribute_set_id] => 4 [type_id] => simple [sku] => 8018-90 [has_options] => 0 [required_options] => 0 [created_at] => 2010-03-11 12:17:46 [updated_at] => 2013-07-24 12:12:56 [product_id] => 323 [item_store_id] => 1 [tag_id] => 1 [name] => dixit [tag_status] => 0 [tag_name] => dixit ) )
那么如何过滤使用like query这个模型。
我尝试了两种过滤器属性方式
$collection->addFieldToFilter("name",array('like'=>'%dixit%'));
$collection->addAttributeToFilter("name",array('like'=>'%dixit%'));
但他们都没有工作。
答案 0 :(得分:2)
$collection->getSelect()->Where(' name like ?',"% dixit %");
使用这种方式,您可以将tag_name过滤为需求。
getSelect()方法得到选择查询,我们只是追加查询选择查询使用where where方法。
它的简单方法。 我检查它的工作正常。
答案 1 :(得分:0)
你好检查下面的代码可能会对你有所帮助
$tagName='dixit';
$tagId= Mage::getModel('tag/tag')->loadByName($tagName)->getId();
$tagId = 3;
$products = Mage::getResourceModel('tag/product_collection')
->addAttributeToSelect('sku')
->addAttributeToSelect('name')
->addTagFilter($tagId);
print_r($products->getData());