Панель навигации с категориями (и подкатегориями) - PullRequest
0 голосов
/ 09 ноября 2018

Мне нужна твоя помощь. Я новичок в Laravel. Я хочу, чтобы все категории и подкатегории были в моей навигационной панели, поэтому на каждой странице. У меня есть модель категории. Как получить все категории? Могу ли я просто использовать что-то вроде

Category::all()->get() etc.

в моем макете, правильно ли звонить с макета?

Ответы [ 2 ]

0 голосов
/ 10 ноября 2018

Как-то, когда я работал над проектом блога, у меня тоже была та же проблема, которую я решил, поделившись данными со всеми представлениями, что довольно легко и просто.

в вашем app/Provider/AppServiceProvider.php файле в boot Метод добавьте ниже код:

 public function boot()
    {
        $categories = Category::all();
        view()->share('categories', $categories);    
    }

и теперь вы можете получить доступ к $categories в каждом представлении для более подробной информации, перейдите по этой ссылке .

0 голосов
/ 10 ноября 2018

Вы должны использовать композиторы представления, чтобы передать переменную всем страницам. Сначала создайте представление composer в App \ View \ Composer;

    namespace App\View\Composers;
    use App\Category;
    use Illuminate\View\View;

    class InjectCategory
    {
       protected $categories;

       public function __construct(Category $categories)
       {
           $this->categories= $categories;
       }

       public function compose(View $view)
       {
           $categories= $this->categories->all();
           $view->with('categories',$categories);
       }
    }

Затем вы должны добавить view composer в метод загрузки AppServiceProvider.

public function boot(Request $request)
    {

        $this->app['view']->composer(['includes.frontend.menu'], Composers\InjectCategory::class);

    }

Теперь вы можете использовать значения $ Categories из вашего menu.blade.php и включать их в начало любой страницы, на которой вы хотите показывать навигацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...