Laravel:类App\Models\DeliveryList的对象无法转换为int



我的模型看起来像这个

public function deliveryList() {
return $this->hasMany( DeliveryList::class, 'order_lists_id' );
}

在刀片中,我正在尝试

$deliveryStatus=$order->deliveryList->last((->delivery_statuss_id;并且dd($deliveryStatus)=6//这就是我想要的

但当尝试做类似的事情时

@if($deliveryStatus != 6 && $order->order_state_id !=4)
<td class="text-center">
{!! $order->deliveryList->last()->deliveryStatus->delivery_status !!}
</td>
@elseif($order->deliveryList->last() == 6 and $order->order_state_id == 2)
<td class="text-center">
<a href="{!! URL::route('delivery.create', 'order='.$order->id) !!}"
class="btn btn-success btn-outline">{{ trans('interface.makeDeliveryRequest') }}
</a>
</td>
@elseif($order->deliveryList->last() == null and $order->order_state_id == 2)
<td class="text-center">
<a href="{!! URL::route('delivery.create', 'order='.$order->id) !!}"
class="btn btn-success btn-outline">{{ trans('interface.makeDeliveryRequest') }}
</a>
</td>
@endif

获得

App\Models\DeliveryList类的对象无法转换为int

如果我将其设为@if($deliveryStatus != null and $order->order_state_id !=4),它可以工作,但我需要指定id 6

更新这也是控制器的一部分,也许我弄错了

public function index(Request $request)
{
$dateFrom = $request->get('dateFrom');
$dateTo = $request->get('dateTo');
$status = $request->get('orderState');
$platform = $request->get('platform');
$dashQuery = $request->get('dashQuery');
$orders = (new OrderList())
->where('order_state_id', '!=', null)
->where('address_id', '!=', null)
->where('user_id', '!=', null)
->whereHas('orderDetail', function ($query) {
$query->where('supplier_id', Auth::guard('supplier')->user()->id);
$query->where('order_lists_id', '!=', null);
$query->where('product_id', '!=', null);
$query->where('quantity', '!=', 0);
})
->with('deliveryList')
->when($dateFrom, function ($query) use ($dateFrom) {
$query->whereDate('created_at', '>=', $dateFrom);
})
->when($dateTo, function ($query) use ($dateTo) {
$query->whereDate('created_at', '<=', $dateTo);
})
->when($status, function ($query) use ($status) {
$query->where('order_state_id', $status)->get();
})
->when($dashQuery, function ($query) use ($dashQuery) {
switch ($dashQuery) {
case 'all':
$query->whereIn('order_state_id', [1, 2])->get();
break;
case 'today':
$query->whereIn('order_state_id', [1, 2])
->whereDate('created_at', Carbon::today())->get();
break;
case 'twoDays':
$query->whereIn('order_state_id', [1, 2])
->whereDate('created_at', '>=', Carbon::today()->subDays(2))
->whereDate('created_at', '<', Carbon::today())->get();
break;
case 'threeDays':
$query->whereIn('order_state_id', [1, 2])
->whereDate('created_at', '>=', Carbon::today()->subDays(365))
->whereDate('created_at', '<', Carbon::yesterday())->get();
break;
}
})
->when($platform, function ($query) use ($platform) {
$query->where('platform', $platform)->get();
})
->orderBy('id', 'desc')
->paginate(15);

如果使用

OrderList::with('deliveryList')->...

然后您将得到一个ColectionOrderList,并且它有一个属性关系('deliveryList'(,deliveryList可能为null或数组。如果它为null,则无法获得的delivery_statuss_id。

$deliveryStatus = $order->deliveryList->last() ? $order->deliveryList->last()->delivery_status_id : 0/null

你dd($deliveryStatus(=6,因为它是第一个colaction,并且有deliveryList

最新更新