这个问题使我伤脑筋,我找不到解决办法
Laravel版本:5.5.47
我有最简单的if语句:
@foreach($order->ship as $os)
@if($os->destination_info != 0)
{{ $os->destination_info }}
@endif
@endforeach
由于某种原因,它不打印任何内容。我已经尝试了所有选项。如果我只打印不带@if
的变量,它将给我巴塞罗那西班牙,因此条件是正确的,应该打印
这是我的$ order->船:
Illuminate\Support\Collection Object
(
[items:protected] => Array
(
[0] => stdClass Object
(
[ship_id] => 92
[order_id] => 593
[origin_id] => 11
[origin_info] => Shenzhen - China
[destination_id] => 22
[destination_info] => Barcelona - Spain
[cbm] => 3.4151
[container] => C
[container_load_date] => 1566489600
[container_arrival_date] => 1567180800
[container_number] => 10009000
[price] => 53.5
[status] => 1
[time] => 1565842730
)
[1] => stdClass Object
(
[ship_id] => 93
[order_id] => 593
[origin_id] => 15
[origin_info] => Guangzhou - China
[destination_id] => 22
[destination_info] => Barcelona - Spain
[cbm] => 4.736
[container] => C
[container_load_date] => 1566489600
[container_arrival_date] => 1566576000
[container_number] => 10009000
[price] => 52.85
[status] => 1
[time] => 1565842730
)
)
)
答案 0 :(得分:1)
根据您的数组表示形式,destination_info
是一个字符串,您正在将其与数字进行比较。您可以尝试将isset
或is_null
函数与not运算符配合使用。它会帮助您
@foreach($order->ship as $os)
@if(!is_null($os->destination_info))
{{ $os->destination_info }}
@endif
@endforeach
您可以使用PHP isset
@foreach($order->ship as $os)
@if(isset($os->destination_info))
{{ $os->destination_info }}
@endif
@endforeach