首页 > 解决方案 > 如何在控制器中使用 View Composer 变量

问题描述

我试图$view_name在同一个控制器中使用 View Composer 变量,但它给了我错误。

它仅适用于所有视图,但不适用于控制器

我想在同一个控制器中使用该变量。

我的控制器:

public function boot()
{  
    view()->composer('*', function($view){
        $view_name = str_replace('.', '-', $view->getName());
        view()->share('view_name', $view_name);
    });

    $page_name=substr(strrchr(url()->current(),"/"),1);
    if($page_name==request()->server('HTTP_HOST')) {
        $keywords=keyword::where('page_name','index')->where('active','1')->first();
    } else {
        $keywords=keyword::where('page_name',$page_name)->where('active','1')->first();
    }
}

标签: laravel

解决方案


You can create a Middleware to populate a Configuration variable, configuration is always available from all the framework.

public function handle()
{
    config(['myCustomConfig.email' => 'me@example.com']);
}

On your controller

$data = config('myCustomConfig.email');

On your view file

<div>{{ config('myCustomConfig.email') }} </div>

推荐阅读