我有以下情况:
@foreach ($driver->delivery as $delivery)<!--loop over all deliveries -->
@if ($delivery->delivery_date==$whole_week["mon"])
{{$delivery->city}} , {{$delivery->state}}
@endif
@endforeach
它会循环所有交付,如果交付是星期一的匹配日,那么我会显示城市和州。
如果循环没有匹配,是否有blade
方式显示消息no delivery
?或者我需要介绍$successful_match
变量,我将bool
存储成功匹配? (下面的工作示例)
<?php $sunDelivery=false; ?>
@foreach ($driver->delivery as $delivery)<!--loop over all deliveries -->
@if ($delivery->delivery_date==$whole_week["sun"])
{{$delivery->city}} , {{$delivery->state}}
<? $sunDelivery=true; ?>
@endif
@endforeach
{{$sunDelivery ? '' : 'no delivery'}}
答案 0 :(得分:0)
没有合适的语法来做到这一点。不鼓励在视图中这样做。
最正确的方法是预处理数据并将变量True / False发送到视图。
否则,您可以extend Blade添加新命令或使用this one等扩展程序包。
肮脏的技巧1:
将$sunValue
传递为false,以便以这种方式查看和设置:
@foreach( $driver->delivery as $delivery )
@if( ($sunDelivery) ? $delivery->delivery_date==$whole_week["sun"] : $sunDelivery=$delivery->delivery_date==$whole_week["sun"] )
(...)
通过这种方式,如果$sunValue
为False(默认值),则$sunValue
在评估之前设置为True / False条件,否则仅评估条件。
肮脏的技巧2:
使用评论/取消注释:
{{--*/ $sunDelivery = False /*--}}
@foreach( $driver->delivery as $delivery )
@if( $delivery->delivery_date==$whole_week["sun"] )
{{--*/ $sunDelivery = True /*--}}
(...)
此方法有效,因为Blade注释在<?php /*...*/ ?>
中转换,因此上面的语法变为<?php /**/ command /**/ ?>
。
注意:两个代码都经过测试可用。