无法在laravel 5.5的索引页面中获取foreach

时间:2017-10-26 08:42:54

标签: php laravel

我无法在laravel 5.5中的indexpage中获取我的类别名称,

这是我的控制器:

public function leftmenu() {
      $categories = Category::orderby('id', 'desc')->take(9)->get();
      return view('frontend.slider', compact('categories'));
    }

我的路线:

Route::get('/slider', 'IndexController@leftmenu');

我的布局:

@include('frontend.slider')

和我的刀片:

@foreach($categories as $category)
<li class="nav-item _icon">
<a href="./collections-all.html">
<img src="{{asset('default/frontend/assets/images/home3_icon_electronics.png')}}" alt="electronics">
<span>{{$category->title}}</span>
</a>
</li>
@endforeach

以下是我得到的错误:

  

未定义的变量:类别(查看:   C:\ laragon \ WWW \ XXXXXXXX \资源\意见\前端\ slider.blade.php)   (视图:   C:\ laragon \ WWW \ XXXXXXXX \资源\意见\前端\ slider.blade.php)   (视图:   C:\ laragon \ WWW \ XXXXXXXX \资源\视图\前端\ slider.blade.php)

1 个答案:

答案 0 :(得分:0)

您必须在引导方法add {/ p>中的app > Providers > ComposerServiceProvider中添加一个视图编辑器

View::composer('frontend.slider', function ($view) {
    $categories = Category::orderby('id', 'desc')->take(9)->get();
    $view->with('categories', $categories);
});

为什么?

因为您在布局中包含滑块,所以如果您只访问主页,则会看到滑块,此处的问题是您在访问leftmenu时调用/slider而不是类别的主页不存在。