我在刀片视图中有一个foreach循环,我在其中列出了具有枢轴属性价格的对象:
@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>
我想,因为我在这里做一个foreach循环,计算所有选项的总和,以便我可以在Options total:
旁边写它
我试过这个:
@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>
@php($total += $option->pivot->price)
</div>
</div>
<hr>
@endforeach
<div class="row">
<div class="col-md-6">
<h4>Options total: {{ $total }}</h4>
</div>
</div>
但是,这没有用,我收到了一个错误:
未定义变量:总计
我该怎么做?
答案 0 :(得分:9)
首先定义变量:
@php($total = 0);
您还可以使用以下内容获取枢轴列的总和:
$transaction->options()->sum('price')
答案 1 :(得分:1)
您只需在刀片模板中进行计算即可。这对其他用户可能会有帮助。只需在刀片语法{{}}中进行计算,然后使用display:none;即可。 CSS属性。例如
<div style="display: none">
{{ $total = 0 }}
</div>
@foreach($report as $device)
<tr>
<td>{{$device->id}}</td>
<td>{{$device->price}}</td>
<div style="display: none">{{$total += $device->price}}</div>
</tr>
@endforeach
<tr>
<th>Total Distance Travelled</th>
<th>{{$total}}</th>
</tr>
答案 2 :(得分:1)
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>
答案 3 :(得分:0)
您可以轻松地说出
{{$$ action-> options()-> sum('price')}}