我正在使用PHP MVC框架,Yii。我有一个名为类别的模型,与产品模型有HAS_MANY
的关系。两个模型类都扩展CActiveRecord。
我正在寻求帮助,以了解OOP在PHP中使用的一些特定方法。
在我的分类模型视图中,我正在尝试查找类别的总库存数。例如,我可以这样做:
<?php
$total_inventory = 0;
foreach($category->products as $product)
$total_inventory = $total_inventory + $product->inventory;
echo $total_inventory;
?>
为什么我不能这样做?
<?php echo array_sum($category->products->inventory); ?>
导致错误:PHP Notice: Trying to get property of non-object
。
然后我想以下可能会有效:
<?php echo array_sum($category->products->getAttribute('inventory')); ?>
然而,结果是:Fatal error: Call to a member function getAttribute() on a non-object
。
是否可以通过稍微更改某些内容来尝试使用array_sum()
,或者是否因为$category->products
实际上是一个对象而不是数组而无法实现?是吗?
我很高兴收到有助于解释我所遗漏的文章或文档。
由于
答案 0 :(得分:1)
实际上$category->products
是一个对象数组。这就是为什么你不能在对象属性上使用array_sum
。通过在Category
模型
'total_inventory'=>array(self::STAT, 'Product', 'cat_id','select'=>'SUM(inventory)')
您可以通过拨打total_inventory
$category->total_inventory