>我需要将Category::all()
的数据发送到视图。但是我不能使用控制器的@index((。我认为使用这样的东西,但这是一种错误的方式,因为这不会在其他视图中使用。
$categories = Category::all();
return view('view')->with('categories', $categories)
将所有内容返回到 .blade 视图的正确方法是什么?
错误的方式,因为这不会在其他视图中使用。
我理解这个问题,因为您想调用所有视图文件中的所有类别。
您可以创建自己的服务提供商(ViewServiceProvider
名称是通用的(,也可以使用现有的AppServiceProvider
。
在所选提供程序中,将代码放入引导方法中。
public function boot() {
$categories = Category::all();
view()->share('categories ', $categories);
}
这将使$categories
变量在您的所有视图中都可访问。
如果您希望使用外观而不是帮助程序,请将view()->
更改为View::
但不要忘记在文件顶部放置use View;
。
在您的视图方法中,写下刀片的目录和名称,不带".blade">
您可以按如下方式检索数据:
public function getData() {
$categories = Category::all();
return view('yourview', compact('categories'));
}
然后在您的视图中,您可以检索数据:
@foreach($categories as $cat)
<p> {{ $cat->name }} </p>
@endforeach