Php Laravel-如何在刀片视图中计算阵列中对象的总和

Php Laravel-如何在刀片视图中计算阵列中对象的总和,php,laravel,Php,Laravel,我在blade视图中有一个foreach循环,其中列出了具有pivot属性价格的对象: @foreach($transaction->options as $option) <div class="row"> <div class="col-md-6"> <p>Option description: {{

我在blade视图中有一个foreach循环,其中列出了具有pivot属性价格的对象:

                @foreach($transaction->options as $option)
                  <div class="row">
                    <div class="col-md-6">
                      <p>Option description: {{ $option->description }}</p>
                      <p>Price: {{ $option->pivot->price }}</p>
                    </div>
                  </div>
                  <hr>
                @endforeach
                <div class="row">
                  <div class="col-md-6">
                    <h4>Options total: </h4>
                  </div>
                </div>
但是,这不起作用,我犯了一个错误:

未定义变量:总计


如何执行此操作?

首先定义变量:

@php($total = 0);
您还可以通过以下方式获得轴列的总和:

$transaction->options()->sum('price')

您只需在刀片模板中进行计算。这对其他用户很有帮助。只需在blade语法{{}中进行计算,并使用display:none;css属性。比如说


{{$total=0}}
@foreach($报告为$设备)
{{$device->id}
{{$device->price}
{{$total+=$device->price}
@endforeach
总行驶距离
{{$total}

Blade有一个
@php
指令,用于在模板中执行一块普通php。请注意,这可能是糟糕设计的标志,您应该避免在模板中加入太多逻辑。即:

@php
    $total = 0;
@endphp

@foreach ($items as $item)
<tr>
    <td>{{ $item->name }}</td>
    <td>{{ $item->code }}</td>
    <td>{{ $item->price }}</td>
</tr>

@php
    $total += $item->price;
@endphp

@endforeach

....

<p>Total {{ $total }}</p>
@php
$total=0;
@endphp
@foreach($items作为$item)
{{$item->name}
{{$item->code}
{{$item->price}
@php
$total+=$item->price;
@endphp
@endforeach
....
总计{{$Total}


你可以说

{{$transaction->options()->sum('price')}


这是您应该在控制器或域逻辑中执行的操作,并将其传递给视图。计算信息不应该是视图的工作。哦,现在不是吗?我们可以直接从与此方法的关系中获得总和,非常感谢!
@php
    $total = 0;
@endphp

@foreach ($items as $item)
<tr>
    <td>{{ $item->name }}</td>
    <td>{{ $item->code }}</td>
    <td>{{ $item->price }}</td>
</tr>

@php
    $total += $item->price;
@endphp

@endforeach

....

<p>Total {{ $total }}</p>