我想使用product属性中的值显示一个下拉列表。但总是显示第一个空位。我有2个值,但我不知道为什么数组有3个位置
<?php
$options = Mage::getSingleton('eav/config')->getAttribute('catalog_product', 'tipo_paquete')->getSource()->getAllOptions();
var_dump($options);
?>
<select id="tipo_paquete" class="required select" name="tipo_paquete">
<option value=""><?php echo $helper->__('--Please Select--')?></option>
<?php
foreach ($options as $option)
{
echo "<option value='".$option['value']."'>". $option['label'] ."</option>";
}
?>
</select>
此代码显示如下选择:
var_dump显示了这个:
array(3) { [0]=> array(2) { ["label"]=> string(0) "" ["value"]=> string(0) "" } [1]=> array(2) { ["value"]=> string(1) "8" ["label"]=> string(15) "Caja de cartón" } [2]=> array(2) { ["value"]=> string(1) "7" ["label"]=> string(14) "Caja de madera" } }
我不知道为什么我有3个职位,我只保存了2个选项。我用其他属性测试了同样的问题。
答案 0 :(得分:2)
我找到了解决方案here。 getAllOptions
可以收到两个参数:
array getAllOptions ([bool $withEmpty = true], [bool $defaultValues = false])
$withEmpty
为数组添加一个空选项
只需将false
传递给getAllOptions()
。
$options = Mage::getSingleton('eav/config')->getAttribute('catalog_product', 'tipo_paquete')->getSource()->getAllOptions(false);