Lli*_*ian 1 php magento magento-1.7
对于后端模块,我需要检查产品ID是否有效,即:是否有具有该ID的产品?我找到了两个解决方案,但我对其中任何一个都不满意:
Directy查询catalog_product_entity
表.非常快,但绝对不是很优雅,我担心可能会有我不知道的问题.
使用以下代码:
$product = Mage::getModel('catalog/product')->load($productID)
if ($product->getId()) {
//valid id
}
else {
//not a valid id
}
Run Code Online (Sandbox Code Playgroud)
这应该有效但速度很慢,因为我必须一次检查几个ID.由于我不需要实际的产品数据,因此加载它并没有多大意义.
有更好的建议吗?
$productIds = array(16,17,18,19,290993,25 /*...*/);
$collection = Mage::getResourceModel('catalog/product_collection');
$collection->addFieldToFilter('entity_id',array('in'=>$productIds))->load();
$foundIds = array_intersect($productIds,array_keys($collection->toArray()));
var_dump($foundIds); /* each array value should be a valid ID */
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3626 次 |
最近记录: |