Передача данных в представления Blade в Laravel с примерами кода

Вот несколько методов передачи данных в представления Blade в Laravel:

  1. Базовая переменная: вы можете передать переменную в представление Blade, просто заключив ее в двойные фигурные скобки. Например, если у вас есть переменная с именем $title, вы можете отобразить ее в представлении следующим образом:

    <h1>{{ $title }}</h1>
  2. Ассоциативный массив: вы можете передать ассоциативный массив данных в представление Blade, используя метод with. Например:

    return view('myview')->with(['name' => 'John', 'age' => 25]);

    В представлении Blade вы можете получить доступ к следующим значениям:

    <p>Name: {{ $name }}</p>
    <p>Age: {{ $age }}</p>
  3. Несколько переменных: вы можете передать несколько переменных в представление Blade, разделив их запятыми. Например:

    return view('myview', compact('var1', 'var2', 'var3'));

    В представлении Blade вы можете получить прямой доступ к переменным:

    <p>{{ $var1 }}</p>
    <p>{{ $var2 }}</p>
    <p>{{ $var3 }}</p>
  4. Глобальный обмен данными. Если вы хотите совместно использовать данные в нескольких представлениях, вы можете использовать метод shareв методе bootпоставщика услуг. Например:

    public function boot()
    {
       view()->share('siteName', 'My Website');
    }

    Теперь переменная $siteNameбудет доступна во всех ваших представлениях Blade.

  5. Использование директивы @inject. Вы можете использовать директиву @injectдля внедрения службы или экземпляра класса в представление Blade. Например, если у вас есть класс UserService, вы можете внедрить его следующим образом:

    @inject('userService', 'App\Services\UserService')
    <p>{{ $userService->getUserCount() }}</p>

    Здесь директива @injectсоздает экземпляр UserServiceи назначает его переменной $userService, которую затем можно использовать в ваше мнение.