我有search form
网页需要填充category
这样的数据库中的数据,我的网站上有很多页面如gallery
blog
{{1} }。
每个页面都具有相同的etc
。
所以我决定使用search form
和@section
作为主要内容,并将@extend
保留在我的search form
上。
这里是我的main layout
controller
在上面的代码中,我需要像每个public function index()
{
$post = Post::all();
$categories = Category::all();
return view('events.show', compact('post', 'category'));
}
public function show($slug)
{
$post = Post::where('slug',$slug)->first();
$categories = Category::all();
return view('events.show', compact('post', 'category'));
}
以及每个category
一样调用function
列表
有一种方法可以使每个controller
和每个$categories = Category::all();
都没有function
吗?...
因此只需拨打一次即可处理每个页面。
答案 0 :(得分:0)
在您的app/AppServiceProvider
boot()方法中,获取类别,然后它将对所有刀片视图可用,因此无需在每个控制器功能内获取和设置类别。
<?php
namespace App\Providers;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;
use App\Category;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
View::share('key', 'value');
Schema::defaultStringLength(191);
$categories= Category::all();
View::share('categories',$categories);
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}
在任何刀片视图文件中,您可以访问以下类别:
@foreach($categories as $category)
<p>{{$category->name}}</p>
@endforeach