laravel carbon无法显示默认促销

时间:2018-09-20 10:59:28

标签: php laravel

我正在将laravel calendarCarbon一起使用,以显示每日促销图片。

我在日历中设置了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>

希望有人可以提供帮助。

谢谢。

2 个答案:

答案 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;

然后它应该可以工作。让我知道你过得怎么样!