我目前正在检查post参数是否具有特定值,并使用pid初始化一个变量,然后在后端手动查找并输入脚本。
if (strpos($this->gleit, "Alu Gleitabschluss - Design") !== false) { $this->gleit_pid = 2322; }
else if (strpos($this->gleit, "Kunststoff-Gleitabschluss") !== false) { $this->gleit_pid = 2954; }
else if (strpos($this->gleit, "Alu Gleitabschluss") !== false) { $this->gleit_pid = 2950; }
else if (strpos($this->gleit, "Alu-Endstück Putz") !== false) { $this->gleit_pid = 2936; }
else if (strpos($this->gleit, "Alu-Endstück Klinker") !== false) { $this->gleit_pid = 3227; }
那不是一个好的解决方案,如果有新产品,那么我必须添加更多代码。
是否可以通过名称来加载产品? 我可以开发一个将所有产品模型都加载到for循环中并检查名称的工具,但这会占用过多的资源,并且加载时间极长,并且服务器不满意。
例如
public function findProductByName($name, $start, $end)
{
for($pid = $start; $pid < $end; $pid++ ) {
$tmpModel = Mage::getModel('catalog/product')->load($pid);
$tmpName = $tmpModel->getName();
$a = get_object_vars($tmpModel);
$b = get_class_methods($tmpModel);
if ($tmpName == $name) {
return tmpModel;
}
}
}
正确的做法。
答案 0 :(得分:2)
您可以使用以下方法:
$_product= Mage::getModel('catalog/product')->loadByAttribute('name','Product Name');
echo $_product->getId();