在我的Laravel刀片模板中,我有一个表,我想在其中添加另一列在代码
之后<td>{{format_price($mission->amount)}}</td>
我添加了这个:
@php
$amount_to_be_collected = DB::table('shipments')
->select('amount_to_be_collected')
->where('mission_id', $mission->id)
->get();
@endphp
<td>{{format_price($amount_to_be_collected)}}</td>
这段代码有什么问题?
首先,您不应该在刀片中放置DB查询代码。
现在,当您使用eloquent运行查询并调用get()
时,响应是一个Collection::class
实例,可以将其视为数组,但不能自动转换为数字/字符串。
如果一个条目只需要on字段的值,则使用value()
代替。
$amount_to_be_collected = DB::table('shipments')
->where('mission_id', $mission->id)
->value('amount_to_be_collected');
注意:在刀片视图中使用db查询是不好的,你也可以使用helper
在使用DB facade之前尝试一下,你需要在刀片视图中调用这个类
use IlluminateSupportFacadesDB;