Symfony2修复数组到字符串错误

时间:2015-04-24 12:17:00

标签: php symfony twig

我创建了一个枝条扩展功能,用于计算物品的总价格:

public function getTotal($items)
    {
    $total = array();
    foreach($items as $item){
        $total[] = $item->getPrice() - $item->getDiscount() + $item->getValue();
    }
    return $total;
    }

然而,当我显示它们时,我得到错误:数组转换为字符串

我显示如下:

{{getTotalTax(product)}}

我尝试过这样做没有帮助:

public function getTotal($items)
    {
    $totals = array();
    foreach($items as $item){
        $totals[] = $item->getPrice() - $item->getDiscount() + $item->getValue();

         if(is_array($totals)) {
        return '';
        }
    }
    return $totals;
    }

2 个答案:

答案 0 :(得分:0)

您的代码正在返回一个数组。

我假设你想要:

  • 为每个项目返回数组中的每个总数:价格 - 折扣 +
    在这种情况下,您需要修复显示功能以将每个总数从阵列中取出并打印出来。 e.g。

function print_totals($totals){
    foreach ($totals as $total){
       echo $total;
    } 
}

很难准确地说出你要从你的问题中做什么,因为你的'display'调用getTotalTax(product),其中产品似乎是单个项目,但你粘贴的函数称为{{ 1}}假定数组为getTotal()

您可能希望更新每个项目的属性,如下所示:

$items

  • 返回总计 在这种情况下,您需要不断添加总数,如下所示:

public function getTotal($items)
{
    $total = array();
    foreach($items as $item){
        $item->total = $item->getPrice() - $item->getDiscount() + $item->getValue();
    }
    return true;
}

答案 1 :(得分:-1)

您确实正在返回一个数组,但它无法转换为字符串。根据您的具体需要,您可以返回例如

return print_r($totals, true);

否则,您可以从HTML模板中提取单个元素并输出它们。