我在下面粘贴的函数中的 3 个位置收到此错误。这段代码还有更多内容,但我认为不需要弄清楚这件事。
$count = count($collection);
$i = 1 ;
foreach ($collection as $product)
{
$j = 1 ;
$productId = $product->getDiamondsearchId();
$attributValueOptions = "[" ;
$attributValueOptions .= "'".$productId."', ";
foreach($filterAttributeIds as $filterAttributeId){
$attributValueCollection = Mage::getModel('diamondsearch/diamondsearchattributvalue')->getCollection()->addFieldToFilter('attribut_id',$filterAttributeId)->addFieldToFilter('diamondsearch_id',$productId)->getData();
$attrbutValueId = $attributValueCollection[0]['attrbut_value_id'];
//echo $attrbutValueId."<br>";
$attributValueOptionCollection = Mage::getModel('diamondsearch/diamondsearchattributoptionvalue')->getCollection()->addFieldToFilter('id',$attrbutValueId)->getData();
if($j == 1 && $attributValueOptionCollection[0]['attribut_value'] == ""){
break ;
}
if($j == 15){
$attributValueOptions .= "'".$attributValueOptionCollection[0]['attribut_value']."'";
}else{
$attributValueOptions .= "'".$attributValueOptionCollection[0]['attribut_value']."', ";
}
$j++;
}
if($count == $i ){
$attributValueOptions .= "]";
}else{
$attributValueOptions .= "], ";
}
$i++;
echo $attributValueOptions ;
}
问题出在以下行上:
$attributValueCollection = Mage::getModel('diamondsearch/diamondsearchattributvalue')->getCollection()->addFieldToFilter('attribut_id',$filterAttributeId)->addFieldToFilter('diamondsearch_id',$productId)->getData();
$attrbutValueId = $attributValueCollection[0]['attrbut_value_id'];
您正在尝试获取数组的第一项,但此变量为空。你应该验证,然后做你想要的东西,像这样:
if(!empty(attributValueCollection)){
$attrbutValueId = $attributValueCollection[0]['attrbut_value_id'];
以下是完整的要点:https://gist.github.com/muriloazevedo/8dc5b11b17d1c4a3a518
但同样重要的是要记住,如果您尝试生成 json 结果,最好使用 json_encode:http://php.net/manual/pt_BR/function.json-encode.php