您好我已经在Laracasts上发布了这个,但到目前为止还没有答案,所以我想在这里尝试:)
我正在尝试使用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类传递给视图编辑器。
感谢您的帮助
答案 0 :(得分:1)
你需要use()
函数进入函数
var
的闭包
试试这个:
view()->composer('*', function($view) use($shop_category) {
$view->with('parent_categories', $shop_category->getParentCategories());
});
答案 1 :(得分:0)
启动功能应该是
public function boot()
{
view()->composer('*', function($view){
$shop_category = new ShopCategoryInterface()
$parent_categories = $shop_category->getParentCategories();
$view->with('parent_categories', $shop_category->getParentCategories());
});