我需要帮助来遍历多项选项中的所有选项。
我将Product-class与名为“product_properties”的新multioption属性一起使用。我需要一个函数来检查用户在前端选择的optionID是否与列表中的选项匹配,如果找到匹配则返回true。
这样我可以查看是否用户在产品上选择“红色”作为“颜色”。
在伪代码中,这就是我所需要的:
参数:postingOptionID,currentObjectID
在对象上获取属性“product_properties”(multioption)。
对于“product_properties”
中“Color”的每个选项2.1如果postedOptionID == optionID
2.1.1 return true
谢谢
答案 0 :(得分:1)
我终于找到了办法:)
首先获取对象的所有属性: $ contentObjectAttributes = $ contentObject-> version($ contentObject-> attribute('current_version')) - > contentObjectAttributes();
然后循环每个并找到'product_properties':
// Loop all attributes of the object's class
foreach(array_keys($contentObjectAttributes) as $key)
{
$contentObjectAttribute = $contentObjectAttributes[$key];
$contentClassAttribute = $contentObjectAttribute->contentClassAttribute();
$attributeIdentifier = $contentClassAttribute->attribute("identifier");
// Get 'product_properties'-attribute
if ($attributeIdentifier == $product_properties_name)
{
// Get the multioption
$multioption_list = $contentObjectAttribute->content();
// Loop all multioption lists (Color, Make, Brand etc.)
foreach($multioption_list->attribute('multioption_list') as $index => $option)
{
// Loop through this multioption and get all options (if 'Color', get 'Blue', 'Red', 'Green' etc.)
foreach($option['optionlist'] as $option)
{
$optionValue = trim($option['value']);
// if there's a match on $optionValue, do something interesting...
}
}
}
}