Форма вне панели в Filament
Давайте поставим форму вне панели. Страница работников открывается по /workers и не проходит через панель.
В routes/web.php зададим
маршрут на шаблон
workers.blade.php,
куда подключим Livewire:
<?php
use Illuminate\Support\Facades\Route;
Route::view('/workers', 'workers');
?>
Класс WorkerNameForm.php
реализует HasSchemas
и trait InteractsWithSchemas.
Метод form добавит
TextInput с именем
name:
<?php
namespace App\Livewire;
use Filament\Forms\Components\TextInput;
use Filament\Schemas\Concerns\InteractsWithSchemas;
use Filament\Schemas\Contracts\HasSchemas;
use Filament\Schemas\Schema;
use Illuminate\Contracts\View\View;
use Livewire\Component;
class WorkerNameForm extends Component implements HasSchemas
{
use InteractsWithSchemas;
public ?array $data = [];
public function mount(): void
{
$this->form->fill();
}
public function form(Schema $schema): Schema
{
return $schema
->components([
TextInput::make('name')
->label('Name'),
])
->statePath('data');
}
public function render(): View
{
return view('livewire.worker-name-form');
}
}
?>
В шаблоне компонента выведем схему формы одной строкой:
<div>
{{ $this->form }}
</div>
На странице workers.blade.php
вставим тот же компонент:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Workers</title>
</head>
<body>
@livewire('worker-name-form')
</body>
</html>
На обычной странице сайта дайте ввести имя работника.