Laravel 5.5单视图上的多个控制器

时间:2018-09-26 06:28:04

标签: php laravel-5

我有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吗?...

因此只需拨打一次即可处理每个页面。

1 个答案:

答案 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