В Laravel есть несколько способов передачи данных из маршрута в шаблон без использования AJAX. Рассмотрим один из них - использование компонентов шаблонов.
1. Создайте класс компонента шаблона:
namespace AppViewComponents; use IlluminateViewComponent; class ExampleComponent extends Component { public $data; /** * Создание нового экземпляра компонента. * * @param mixed $data * @return void */ public function __construct($data) { $this->data = $data; } /** * Получить представление, которое должно быть отрендерено компонентом. * * @return IlluminateContractsViewView|string */ public function render() { return view('components.example-component'); } }
2. Создайте представление компонента в resources/views/components/example-component.blade.php
. Вы можете использовать переменные из вашего маршрута, передавая их в конструкторе компонента:
<div> <!-- Используйте переменные из маршрута --> <h1>{{ $data }}</h1> </div>
3. В вашем контроллере передайте данные в представление компонента:
use AppViewComponentsExampleComponent; // ... public function index() { $data = 'Привет из маршрута!'; return view('your.view', [ 'exampleComponent' => new ExampleComponent($data), ]); }
4. В вашем представлении your.view.blade.php
подключите компонент:
<x-example-component :data="$exampleComponent->data" />
Теперь в шаблоне example-component.blade.php
вы можете использовать переданные данные из маршрута.
Вот как можно получить данные из маршрута прямо в шаблоне, не используя AJAX, в Laravel с помощью компонентов шаблонов. Вы также можете использовать другие методы, такие как использование View::share()
или передача данных через compact()
, но использование компонентов шаблонов предоставляет более явный и структурированный подход к передаче данных из маршрута до шаблона.