Composer View未将变量加载到视图中

时间:2018-02-15 19:08:00

标签: laravel laravel-5.4

我之前创建了3个作曲家视图并且它们都正常工作,但后来又创建了另一个,这似乎不起作用。我一直试图让它工作,它似乎与我的代码无关。我会在这里放一块,但我仍然不认为这是代码。

Provider EvenComposerProvider:

public function register(){
    $this->composeEven();
}
public function composeEven(){
    view()->composer('includes.aklinkosesi', 'App\Http\Composers\EvenComposer');
}

Composer EvenComposer:

class EvenComposer{
   public function compose(View $view){
      $view->with('evens', Even::orderBy('id','desc')->paginate(10));
   }
}

而且我将提供者包含在app.php

App\Providers\EvenComposerProvider::class

当我尝试使用$evens循环遍历foreach时,会抛出错误:

  

未定义的变量:evens

我的粗略猜测是,Laravel不编译app.php

2 个答案:

答案 0 :(得分:5)

所以这里的解决方案可能适用于同一个坐姿的人。 首先尝试这些命令:

composer update
php artisan config:clear
php artisan cache:clear 
composer dumpautoload
php artisan cache:clear

我尝试了其中一些而不是删除bootstrap/cache/config文件,但它确实有效。

答案 1 :(得分:0)

您做错了,将此代码放入boot内的provider方法中,并从register中删除代码并删除您的方法composeEven:< / p>

View::composer(
   'layouts.aklinkosesi', 'App\Http\Composers\EvenComposer'
);