Laravel вид в другой вид - PullRequest
       1

Laravel вид в другой вид

0 голосов
/ 03 марта 2020

Только начал изучать Laravel недолго go, и у меня возник вопрос о просмотрах.

У меня есть 2 вида файлов (blade).

Тот, который показывает категории из базы данных.

Другой показывает результаты поиска по продуктам.

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

Я попытался сделать несколько вещей, чтобы это работало, но я не уверен, что правильный подход:

  1. Я сделал функцию в контроллере, где я перечислил категории, обработал поиск и отправил его в представление, но мне не понравился этот подход, потому что я ' Я обрабатываю два разных логика c в одной функции.

  2. Я попытался выдать или включить файл вида в основной вид. Я получил ошибку, потому что запрос к базе данных не случился в этом случае. Я думаю, что доходность и включение доступны только с данными о состоянии c.

Итак, я не знаю, как правильно решить эту проблему.

Может кто-нибудь предложить мне решение этой проблемы?

Заранее спасибо за помощь!

Ответы [ 2 ]

1 голос
/ 03 марта 2020

Вы должны получить $categories только один раз и передать $categories всем представлениям (или представлениям, которые должны быть отнесены к категории или просто передать его categories.blade.php). для этой цели я предлагаю создать частичный блейд с именем categories.blade.php и показать все категории в нем и включать его в случае необходимости, но перед этим метод go до app/Provider/AppServiceProvider.php и метод boot() получают категории и делятся ими в созданный вами блейд категорий, как показано ниже:

public function boot() {
    // pass to first param, address categories blade 
    View()->composer('categories', function ($view){ 
        // set a name for variable that get it in categories view
        $view->with(['categories'=>$categories]);  
    });
}

Если вы хотите узнать больше о подписках, посетите эту ссылку или Laravel документы

0 голосов
/ 03 марта 2020

Там может быть несколько способов. Вы можете попытаться получить данные категории внутри блейд-файла. Так, например, в файле category.blade вы можете получить список категорий из базы данных. Тогда он будет независим от других файлов представлений и контроллеров. И вы можете включить category.blade. php, например.

Второй способ - получить данные категории через ajax. В этом случае вы не можете вставить скрипт на всех страницах использования категории. Таким образом, в этом случае вы можете использовать структуру шаблона. Например. In template.blade.php

<!DOCTYPE html>
<html class="no-js css-menubar" lang="en">
    @stack('style')
    @include('admin.layouts.head')
    @include('admin.layouts.header')
    @include('admin.layouts.page')
    @include('admin.layouts.footer')
    @stack('script')
</html>

In page.blade.php

<div class="page">
    @yield('page-content')
</div>

На отдельной странице

@extends('admin.layouts.template' ,['menu'=>'coach'])
@section('insert-css')
  your custom css content here
@endsection
@section('page-content')
  Your page content here
@endsection
...