2016-11-23 5 views
0

Привет Я отправил это на Laracasts, но до сих пор нет ответов, так не думал, что я хотел бы попробовать здесь :)Создание глобальной переменной в AppServiceProvider Laravel 5.3

Я пытаюсь получить несколько глобальных переменных для просмотров используя AppServiceProvider. У меня не было проблем, если я использую один из фасадов Laravel, чтобы получить пользовательские данные, например, но с помощью инъекции зависимостей я не смог его обработать.

Это код, который я в настоящее время:

<?php namespace App\Providers; 

use Illuminate\Support\ServiceProvider; 

use App\Repositories\ShopCategory\ShopCategoryInterface; 

class AppServiceProvider extends ServiceProvider 
{ 
    /** 
    * Bootstrap any application services. 
    * 
    * @return void 
    */ 
    public function boot(ShopCategoryInterface $shop_category) 
    { 
     $parent_categories = $shop_category->getParentCategories(); 

     view()->composer('*', function($view){ 
      $view->with('parent_categories', $shop_category->getParentCategories()); 
    }); 
} 

    /** 
    * Register any application services. 
    * 
    * @return void 
    */ 
    public function register() 
    { 

    } 
} 

Я предположил, что это будет работать, но я получаю ошибку:

Undefined variable: shop_category 

Так что я просто интересно, как я прохожу $ shop_category класс для композитора представления.

Спасибо за любую помощь

ответ

1

Вы должны use() функции в затвор для прохода var внутри функции

Попробуйте это:

view()->composer('*', function($view) use($shop_category) { 
     $view->with('parent_categories', $shop_category->getParentCategories()); 
    }); 
+0

Спасибо вы. Я просто создавал композитор представления, но это кажется более элегантным способом сделать это. Гораздо меньше кода и гораздо меньше файлов - отлично! – cshelswell

0

функция загрузки должна быть

public function boot() 
    { 
     view()->composer('*', function($view){ 
     $shop_category = new ShopCategoryInterface() 
     $parent_categories = $shop_category->getParentCategories(); 
     $view->with('parent_categories', $shop_category->getParentCategories()); 
    }); 
+0

Спасибо за ваш ответ. Я не пробовал это просто потому, что тот, который я проголосовал, имеет меньше кода, но спасибо, что нашел время, чтобы добавить ответ – cshelswell

Смежные вопросы