在print_r语句中获取后,我得到以下数组结构:
它来自Magento。任何人都可以建议我如何从这个数组中获取 customoptions_qty ?
Mage_Catalog_Model_Product_Option_Value Object
(
[_origData:protected] => Array
(
[option_type_id] => 13
[option_id] => 5
[sku] =>
[sort_order] => 0
[customoptions_qty] => 55
[default] => 0
[in_group_id] => 262142
[dependent_ids] => 263141
[weight] => 0.0000
[default_title] => Buy 3 Get 1
[store_title] =>
[title] => Buy 3 Get 1
[default_option_type_price_id] => 13
[default_price] => 300.0000
[default_price_type] => percent
[default_special_price] =>
[default_special_comment] =>
[store_option_type_price_id] =>
[store_price] =>
[store_price_type] =>
[store_special_price] =>
[store_special_comment] =>
[option_type_price_id] => 13
[price] => 300.0000
[price_type] => percent
[special_price] =>
[special_comment] =>
)
)
答案 0 :(得分:1)
Magento为data
和origData
数组中的所有值使用魔术调用者/ getter / setter。
每当您尝试获取 camelCased 属性名称的值时,魔术调用者将尝试使用 under_scoreifyed data数组中获取值>财产名称。
如果data
数组中的值不是,则魔术调用者将尝试在origData
数组中找到它。
$obj->getCustomoptionsQty();
$obj->getData('customoptions_qty');
如果您已为某个属性设置了新值,并希望获得原始值,则可以使用getOrigData
。
$obj->getOrigData('customoptions_qty');
答案 1 :(得分:0)
我们假设您打印的变量名为$_option
你可以这样得到customoptions_qty
:
$qty = $_option->getOrigData('customoptions_qty');
你可以像这样获得完整的数组
$origData = $_option->getOrigData();
我不确定你想要达到的目的,但你可能做错了。
magento中的_origData数组包含从db检索的对象的值
如果您修改了对象,则可能需要使用
$qty = $_option->getData('customoptions_qty');
Magento对象看起来像这样
Class_Name Object
(
[_data:protected] => Array
(
//some values here
)
[_origData:protected] => Array
(
//some values here
)
)
当您从db获取对象值时,_data和_origData是相同的,但_data可以更改。