Совместное использование данных для заголовка, который не имеет маршрута в Laravel - PullRequest
0 голосов
/ 16 мая 2019

В Laravel я бы создал вид таким образом.

Route -> Controller -> Blade to be displayed.

То есть я бы создал маршрут и указал его на контроллер, который вернул бы мой блэйд-вид.Любая дата будет передаваться через контроллер, например:

return view('layouts.cart')->with('cartDetails', $displayCart);

Мой вопрос: как мне передать данные в заголовок, который используется на всех страницах, если для этого представления нет маршрута?

Например, у меня есть страница главного блейда, которая содержит:

header.blade.php

a different body page each time

footer.blade.php

Я бы хотел, чтобы header.blade.php содержал некоторые данные, которые должны отображаться на всех страницах.Я могу сделать это, вызвав маршрут и используя ajax для отображения данных, но мне интересно, есть ли способ Laravelish для этого.

РЕДАКТИРОВАТЬ:

Является ли View::Share только вариант?

1 Ответ

1 голос
/ 16 мая 2019

Да, View::share - это способ выполнить то, что вам нужно.Из документов :

Совместное использование данных со всеми представлениями

Иногда вам может потребоваться поделиться частью данных со всеми представлениями, отображаемыми вашим приложением.,Вы можете сделать это, используя метод share вида фасада.Как правило, вы должны совершать вызовы на номер share в методе boot поставщика услуг.Вы можете добавить их к AppServiceProvider или создать отдельного поставщика услуг для размещения их:

<?php

namespace App\Providers;

use Illuminate\Support\Facades\View;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        View::share('key', 'value');
    }
}

Альтернатива

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

...