我正在使用Laravel 5,我正在尝试将类别变量输出到视图,但目前我收到一个未定义的变量错误。
这是代码。
首先在config / app.php中:
'App\Providers\AppServiceProvider',
在app / Providers / AppServiceProvider.php中:
public function boot()
{
View::composer('partials.menu', function($view)
{
$view->with('categories', Category::all());
});
}
在partials / menu.blade.php中:
<ul>
<li>Home</li>
@foreach($categories as $category)
<li><a href="/store/category/{!! $category->id !!}">{!! $category->name !!}</a></li>
@endforeach
<li>Basket</li>
<li>Checkout</li>
<li>Contact Us</li>
</ul>
并在store / products.php中:
@include('partials.menu')
我得到的确切错误是:未定义的变量:类别任何帮助解决这个问题都将受到赞赏。
由于
答案 0 :(得分:2)
尝试这些命令
composer dump-autoload
or
php artisan cache:clear
or
php artisan config:clear
有时,这些简单的技巧会有所帮助。
答案 1 :(得分:1)
我发现问题来自您的app/Providers/AppServiceProvider.php
。
在您的启动方法中,view::composer
旨在接收您的作曲家应该应用的一系列视图。即View::composer(['partials.menu'], function($view) { .. }
查看完整的解决方案:
public function boot()
{
View::composer(['partials.menu'], function($view)
{
$view->with('categories', Category::all());
});
}
答案 2 :(得分:0)
我认为方法“with”接受一个数组作为参数,而不是尝试这个!
$categories = Categories::all();
$view->with(compact('categories'));
答案 3 :(得分:0)
您需要正确传递查询中的Categories类,只需将Categories::all()
更改为\App\Categories::all()
,假设您没有更改名称空间。