我试图将查询结果与所有观点分享,但似乎没有效果。
我的分类模型中有
public function getAllImageCategories()
{
$categoires = Category::all();
return $categoires;
}
然后在我的HomeController __constructor中
public function __construct()
{
$Category = new Category;
$allCategories = $Category->getAllImageCategories();
View::share('allCategories', $allCategories);
$this->middleware('auth');
}
在视图中
@foreach($allCategories as $category)
<li><a href="#"><i class="fa fa-btn fa-sign-out"></i>{!! $category->name !!}</a></li>
@endforeach
错误
未定义的变量:allCategories
为什么会出现这个错误?我错在哪里?
答案 0 :(得分:2)
我建议您将View Composer用于所有视图页面。
https://laravel.com/docs/5.4/views#view-composers
否则,您可以在同一页面上使用在所有视图中共享数据 转到
your/project/directroy/app/Providers/AppServiceProvider.php
并将您的代码添加到启动方法
public function boot()
{
$Category = new Category;
$allCategories = $Category->getAllImageCategories();
View::share('allCategories', $allCategories);
}
答案 1 :(得分:0)
您应该将代码放入服务提供商的boot()
方法中:
public function boot()
{
$Category = new Category;
$allCategories = $Category->getAllImageCategories();
View::share('allCategories', $allCategories);
}
您应该在服务提供商的
boot
方法中拨打电话进行分享。您可以自由地将它们添加到AppServiceProvider
或生成一个单独的服务提供商来容纳它们。
https://laravel.com/docs/5.4/views#sharing-data-with-all-views