В Laravel, передача переменной в родительский шаблон может быть достигнута с помощью двух методов: через наследование и с помощью команды with
.
Первый способ - наследование переменной. Для этого в родительском шаблоне нужно определить блок с помощью директивы @section
, а затем в дочернем шаблоне использовать этот блок и передать в него переменную.
Пример:
// Родительский шаблон (app.blade.php) <html> <head> <title>@yield('title')</title> </head> <body> <div class="container"> @yield('content') </div> </body> </html> // Дочерний шаблон (child.blade.php) @extends('app') @section('title', 'Моя страница') @section('content') <h1>Добро пожаловать!</h1> <p>Привет, {{ $name }}!</p> @endsection
В этом примере переменная $name
передается из контроллера в вид путем использования return view('child', ['name' => 'John']);
. В дочернем шаблоне она отображается с помощью фигурных скобок {{ $name }}
.
Второй способ - использование команды with
. Этот метод позволяет передавать переменную в родительский шаблон прямо из контроллера.
Пример:
public function index() { $name = 'John'; return view('child')->with('name', $name); }
// Родительский шаблон (app.blade.php) остается без изменений // Дочерний шаблон (child.blade.php) @extends('app') @section('title', 'Моя страница') @section('content') <h1>Добро пожаловать!</h1> <p>Привет, {{ $name }}!</p> @endsection
В этом примере переменная $name
передается в дочерний шаблон с помощью метода with
. В дочернем шаблоне она отображается так же как и в первом способе.
Оба способа являются допустимыми и могут быть использованы в зависимости от ваших предпочтений и структуры проекта. Первый способ удобен, когда вам нужно использовать одну и ту же переменную в различных шаблонах, а второй способ удобен, когда нужно передать переменную только в текущий шаблон.