Magento如果产品有属性,请获取它的ID

时间:2015-03-17 14:26:04

标签: php magento loops if-statement

我需要获取具有特定值属性的产品的产品ID。

这是我到目前为止所拥有的:

$found = false;

foreach ($_productCollection as $_product) {
    $attribute = $_product->getResource()->getAttribute('attribute');
    $id = $_product->getId();

    if ($attribute = NULL) {
        // Do Nothing
    }
    if ($attribute = "value1") {
        echo $attribute . "<br>";
        $value1 = $id;
    }
    if ($attribute = "value2") {
        echo $attribute . "<br>";
        $value2 = $id;
    }
    if ($attribute = "value3") {
        echo $attribute . "<br>";
        $value3 = $id;
    }

    if ($value1 && $value2 && $value3) {
        $found = true;
        echo "All IDs Found" ."<br>";
    }
    if ($found = true) {
        break;
    }
}

echo "Value 1 ID = " . $value1 ."<br>". "Value 2 ID = " . $value2 ."<br>". "Value 3 ID = " . $value3;

这主要是工作,它正确地循环产品,并且可以获得每个产品的属性值。但它显示了该类别中第一个产品的ID,对于每个产品,无论它们具有什么属性。

像这样:

value1
value2
value3
All IDs Found
Value 1 ID = 17024
Value 2 ID = 17024 (should be 17025)
Value 3 ID = 17024 (should be 17026)

我如何才能获得它,以便如果该类别中的产品具有该属性以及其中一个特定值,则会列出该产品&#39; ID?

编辑:

使用==修复了我的部分问题。

另一个问题是使用:

$_product->getResource()->getAttribute('attribute');

没有以允许我使用它的值的方式获取属性。通过使用它来代替:

$_product->getAttributeText('attribute');

并将属性设置为&#39;在产品列表中使用&#39;。这允许我为每个值使用if语句。

1 个答案:

答案 0 :(得分:2)

您每次都要分配值:

if ($attribute = "value1") {

使用double进行比较:

if ($attribute == "value1") {