ComposerServiceProvider.php 2.34 KB
<?php

namespace App\Providers;

use App\Models\Category;
use App\Models\Company;
use App\Models\Good;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;

class ComposerServiceProvider extends ServiceProvider
{
    /**
     * Register services.
     *
     * @return void
     */
    public function register()
    {
        $views = [
            'layout.part.categories', //меню в правой колонке в публичной части
            'admin.part.categories', //выбор категории поста при редактировании
            'admin.part.parents', //выбор родителя категории при редактировании
            'admin.part.all-ctgs', //все категории в административной части
            'admin.part.category_id',
            'layout.site',
            'layout.admin',
        ];
        View::composer($views,
            function($view) {
                static $items = null;
                if (is_null($items)) {
                    $items = Category::all();
                }
                $view->with(['items' => $items]);
            });

        $views = [
            'admin.part.goods',
        ];
        View::composer($views,
            function($view) {
                static $items = null;
                if (is_null($items)) {
                    $items = Good::all();
                }
                $view->with(['items' => $items]);
            });

        $views = [
            'layout.admin',
            'index',
            'company',
        ];
        View::composer($views,
            function($view) {
                $company = Company::query()->where('id', '=', '1')->get();
                $view->with(['company' => $company]);
            });

    }

    /**
     * Bootstrap services.
     *
     * @return void
     */
    public function boot()
    {
        View::composer('layout.part.categories',
            function($view)
            {
                static $items = null;

                if (is_null($items)) {
                    $items = Category::all();
                    $parent = 0;
                    $view->with(['items' => $items, 'parent' => $parent]);
                } else {
                    $view->with(['items' => $items]);
                }

            }
        );
    }
}