Ubercart uc_cart_get_contents从标准类中获取数据

时间:2010-10-15 01:18:46

标签: php drupal ubercart

我正在为我的一个项目编写自定义模块,我遇到了一些问题。我想要做的是从uc_cart_get_contents()获取一个数据到一个变量,以便我可以在计算中使用它:

这是我的var_export:

array ( )array ( 0 => stdClass::__set_state(array( 'cart_item_id' => '5', 'cart_id' => '1', 'nid' => '9', 'qty' => '10', 'changed' => '1287074120', 'data' => array ( 'attributes' => array ( 3 => '4', ), 'shippable' => '1', 'restrict_qty' => '0', 'module' => 'uc_product', ), 'title' => 'Chicago Canyon', 'vid' => '9', 'cost' => 1.16, 'price' => 11.16, 'weight' => 0, 'module' => 'uc_product', 'model' => 'chicago-canyon-p-card-p-env', )), )

但是,如果我想将购物车中每件商品的型号放入变量,并根据该变量调整商品的价格,该怎么办呢。

如果是数组,我会这样做:

$items= uc_cart_get_contents();

$model = $items[model];

但这不起作用,它是一个std类。我太迷失了。请帮忙!

2 个答案:

答案 0 :(得分:2)

如果您询问如何访问对象属性,请执行以下操作:

$model = $items->model;

答案 1 :(得分:2)

对于初学者,uc_cart_get_contents()返回一个对象数组。所以,如果你这样做了:

$items=uc_cart_get_contents();

您必须遍历$ items,然后从每个项目中获取所需的特定数据元素。

例如:

$items = uc_cart_get_contents();
foreach ($items as $item)
{
  $model = $item->model;
  // whatever ... 
} 

希望有所帮助