Многофункциональный контроллер Laravel 5.5 на одном экране - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть веб-страницы, на которых есть search form, которые должны заполнять данные из базы данных, например category, на моем сайте много страниц, например gallery blog 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 также каждый controller? ...

, поэтому просто позвоните один раз и работайте на каждой странице.

1 Ответ

0 голосов
/ 26 сентября 2018

в вашем 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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...