我正在将laravel calendar
与Carbon一起使用,以显示每日促销图片。
我在日历中设置了image
,它显示在主页上。这部分我很满意。
问题是,如果数据库中没有设置促销图片,则不会显示默认图片/image/promotion.jpg
。
这是我的控制器代码:
$setting = PromotionSetting::where('start_date', '<=', Carbon::now())->where('end_date', '>=', Carbon::now())->where('business_id', $business->id)->first();
$promotion = BusinessPromotion::find($setting->promotion_id);
这是主页上的代码:
<div class="business_promotion text-center mt-3">
@if(isset($promotion))
<img src="{{ $promotion->path }}" width="350px" class="promotion-img">
@else
<img src="/images/promotion.jpg" width="350px" class="promotion-img">
@endif
</div>
希望有人可以提供帮助。
谢谢。
答案 0 :(得分:0)
检查isset()中的$ promotion-> path图像
<div class="business_promotion text-center mt-3">
@if(isset($promotion->path))
<img src="{{ $promotion->path }}" width="350px" class="promotion-img">
@else
<img src="/images/promotion.jpg" width="350px" class="promotion-img">
@endif
</div>
答案 1 :(得分:0)
您询问是否isset()
。 已设置。它恰好为空(可能)。
最好将支票更改为以下内容:
@if(!is_null($promotion) && isset($promotion->path))
如果仍然不起作用,则如果找不到这样的促销活动,则可以将其强制为null:
$promotion = BusinessPromotion::find($setting->promotion_id) ?: null;
然后它应该可以工作。让我知道你过得怎么样!