Имя компонента
Имя компонента в Livewire используется для его идентификации в системе,
регистрации маршрутов и вызова из Blade-шаблонов. По умолчанию имя
генерируется автоматически на основе полного имени класса, но вы можете
задать собственное имя с помощью свойства $name или через
параметр метода Livewirecomponent.
Автоматическое именование
По умолчанию Livewire использует полное имя класса компонента
с преобразованием в kebab-case. Например, класс Counter
из пространства имен AppLivewire получит имя counter.
<?php
namespace AppLivewire;
use LivewireComponent;
class Counter extends Component
{
public $num = 0;
public function render()
{
return view('livewire.counter');
}
}
?>
Такой компонент можно вызвать в Blade с именем counter:
<livewire:counter />
Ручное указание имени
Вы можете задать собственное имя компонента через свойство $name:
<?php
namespace AppLivewire;
use LivewireComponent;
class Counter extends Component
{
protected $name = 'my-counter';
public $num = 0;
public function render()
{
return view('livewire.counter');
}
}
?>
Теперь компонент доступен по имени my-counter:
<livewire:my-counter />
Регистрация через метод component
В сервис-провайдере можно зарегистрировать компонент с произвольным именем:
<?php
namespace AppProviders;
use IlluminateSupportServiceProvider;
use LivewireLivewire;
use AppLivewireCounter;
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
Livewire::component('custom-counter', Counter::class);
}
}
?>
После регистрации компонент доступен по имени custom-counter:
<livewire:custom-counter />
Именование с подпапками
Если компонент находится в подпапке, имя формируется с указанием пути через точку:
<?php
namespace AppLivewireAdmin;
use LivewireComponent;
class Dashboard extends Component
{
public function render()
{
return view('livewire.admin.dashboard');
}
}
?>
Такой компонент вызывается с именем admin.dashboard:
<livewire:admin.dashboard />
Использование в полностраничных компонентах
Для полностраничных компонентов имя используется
в маршруте через метод route:
<?php
use IlluminateSupportFacadesRoute;
use AppLivewireCounter;
Route::get('/counter', Counter::class)->name('counter');
?>
Имя компонента в этом случае не влияет на маршрут, но используется в других контекстах.
Смотрите также
-
класс
Component,
базовый класс для всех компонентов Livewire -
метод
component,
регистрирует компонент с указанным именем -
раздел
пространство имен Pages,
автоматическое именование для страниц -
раздел
полностраничные компоненты,
которые занимают всю страницу