Вот несколько методов передачи данных в представления Blade в Laravel:
-
Базовая переменная: вы можете передать переменную в представление Blade, просто заключив ее в двойные фигурные скобки. Например, если у вас есть переменная с именем
$title, вы можете отобразить ее в представлении следующим образом:<h1>{{ $title }}</h1> -
Ассоциативный массив: вы можете передать ассоциативный массив данных в представление Blade, используя метод
with. Например:return view('myview')->with(['name' => 'John', 'age' => 25]);В представлении Blade вы можете получить доступ к следующим значениям:
<p>Name: {{ $name }}</p> <p>Age: {{ $age }}</p> -
Несколько переменных: вы можете передать несколько переменных в представление Blade, разделив их запятыми. Например:
return view('myview', compact('var1', 'var2', 'var3'));В представлении Blade вы можете получить прямой доступ к переменным:
<p>{{ $var1 }}</p> <p>{{ $var2 }}</p> <p>{{ $var3 }}</p> -
Глобальный обмен данными. Если вы хотите совместно использовать данные в нескольких представлениях, вы можете использовать метод
shareв методеbootпоставщика услуг. Например:public function boot() { view()->share('siteName', 'My Website'); }Теперь переменная
$siteNameбудет доступна во всех ваших представлениях Blade. -
Использование директивы
@inject. Вы можете использовать директиву@injectдля внедрения службы или экземпляра класса в представление Blade. Например, если у вас есть классUserService, вы можете внедрить его следующим образом:@inject('userService', 'App\Services\UserService') <p>{{ $userService->getUserCount() }}</p>Здесь директива
@injectсоздает экземплярUserServiceи назначает его переменной$userService, которую затем можно использовать в ваше мнение.