2016-11-23 94 views
0

嗨全局变量我已张贴这对Laracasts但至今没有答案,所以想我会尝试在这里:)创建于AppServiceProvider Laravel 5.3

我试图得到一个对全局变量来意见使用AppServiceProvider。如果我使用Laravel的Facade之一来获取用户详细信息,但是使用依赖注入,我还没有遇到问题,但我无法解决这个问题。

这是我目前拥有的代码:

<?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

感谢您的回答a我还没有尝试过这一个,因为我已经投了票的人有更少的代码,但感谢花时间来添加答案 – cshelswell