Слаг из заголовка в Filament
Давайте соберём слаг из заголовка. Человек вводит название, а соседняя строка получает латиницу и дефисы для адреса записи. Проверим на /admin/posts/create.
Заголовок делают живым при
потере фокуса. В
afterStateUpdated
строку прогоняют через
Str::slug и кладут
результат в поле slug
через Set.
Добавим оба поля в
PostForm.php:
<?php
namespace App\Filament\Resources\Posts\Schemas;
use Filament\Forms\Components\TextInput;
use Filament\Schemas\Components\Utilities\Set;
use Filament\Schemas\Schema;
use Illuminate\Support\Str;
class PostForm
{
public static function configure(Schema $schema): Schema
{
return $schema->components([
TextInput::make('title')
->live(onBlur: true)
->afterStateUpdated(fn (Set $set, ?string $state) => $set('slug', Str::slug($state ?? ''))),
TextInput::make('slug'),
]);
}
}
?>
Сделайте так, чтобы из имени работника само собиралось короткое имя для адреса.