РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
121 of 274 menu

Макрос Route::livewire

Макрос Route::livewire предназначен для регистрации полноэкранных компонентов Livewire. В отличие от обычного внедрения компонента в шаблон, этот макрос делает компонент главным содержимым всей страницы. В первый параметр передаётся путь URL, а во второй - имя класса компонента.

Синтаксис

<?php use LivewireLivewire; Route::livewire('/url', ComponentClass::class); ?>

Простой пример

Давайте зарегистрируем компонент Counter по пути /counter:

<?php use IlluminateSupportFacadesRoute; use LivewireLivewire; use AppLivewireCounter; Route::livewire('/counter', Counter::class); ?>

Теперь при переходе по адресу http://localhost/counter будет отображаться компонент Counter на всю страницу.

Пример с параметрами

Макрос позволяет передавать параметры в компонент через URL. Давайте создадим компонент, который принимает $id из сегмента URL:

<?php namespace AppLivewire; use LivewireComponent; class Article extends Component { public $id; public function mount($id) { $this->id = $id; } public function render() { return view('livewire.article'); } } ?>
<?php use IlluminateSupportFacadesRoute; use LivewireLivewire; use AppLivewireArticle; Route::livewire('/article/{id}', Article::class); ?>

Теперь при переходе по адресу http://localhost/article/5 в свойство $id компонента будет передано значение 5.

Пример с несколькими параметрами

Можно передавать несколько параметров. Давайте создадим компонент, который принимает $category и $id:

<?php namespace AppLivewire; use LivewireComponent; class Product extends Component { public $category; public $id; public function mount($category, $id) { $this->category = $category; $this->id = $id; } public function render() { return view('livewire.product'); } } ?>
<?php use IlluminateSupportFacadesRoute; use LivewireLivewire; use AppLivewireProduct; Route::livewire('/product/{category}/{id}', Product::class); ?>

При переходе по адресу http://localhost/product/electronics/10 в свойство $category попадёт electronics, а в $id - 10.

Ограничение параметров

Можно использовать стандартные ограничения Laravel для параметров с помощью метода where:

<?php use IlluminateSupportFacadesRoute; use LivewireLivewire; use AppLivewireArticle; Route::livewire('/article/{id}', Article::class) ->where('id', '[0-9]+'); ?>

Теперь параметр id может содержать только цифры. Если передать буквы, маршрут не будет найден.

Пример с именованными маршрутами

Макрос поддерживает создание именованных маршрутов с помощью метода name:

<?php use IlluminateSupportFacadesRoute; use LivewireLivewire; use AppLivewireCounter; Route::livewire('/counter', Counter::class) ->name('counter.page'); ?>

Теперь в Blade-шаблоне можно использовать именованный маршрут:

<a href="{{ route('counter.page') }}"> Go to counter </a>

Результат выполнения кода:

<a href="http://localhost/counter"> Go to counter </a>

Смотрите также

  • метод Livewire::component,
    который регистрирует компонент для использования в шаблонах
  • метод render,
    который возвращает шаблон компонента
  • метод mount,
    который инициализирует компонент и принимает параметры из URL
  • статью полноэкранные компоненты,
    которая подробно описывает работу с компонентами на всю страницу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить