如果环境是本地或暂存,则显示可关闭的块

时间:2019-05-14 09:11:55

标签: php laravel view

使用Laravel,我想向本地/暂存环境中的开发人员和工作人员展示他们正在查看某个模板。

我看过ServiceProvider,但无法通过它将刀片视图推入页面顶部。

我的ServiceProvider如下:

<?php

namespace App\Providers;

use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;

Class TemplateServiceProvider extends ServiceProvider
{
     public function boot()
     {
         View::composer('*', function ($view)
         {
             $environment = App::environment();

             if (App::environment(['local', 'staging']))
             {
                 return view('frontend.shared.chosen-template');
             }
         });
     }
}

但是刀片模板没有被加载。

理想情况下,我希望看到Bootstrap Dismissable警报,以便用户可以根据需要将其关闭。

谢谢

1 个答案:

答案 0 :(得分:2)

您可以做的就是向所有视图共享一个变量,如下所示:

public function boot()
{
    view()->share('isProduction', !App::environment(['local', 'staging']));
}

或者仅选择特定布局:

public function boot()
{
    app('view')->composer('layouts.master', function ($view) {
        $view->with(['isProduction' => !App::environment(['local', 'staging'])]);
    }
}

然后在您的主布局(例如,位于身体顶部的layouts / master.blade.php)中,可以包含以下特定视图:

@if(!$isProduction)
    @include('frontend.shared.chosen-template')
@endif