Filament Title With Slug 项目教程
1、项目介绍
Filament Title With Slug 是一个为 FilamentPHP 开发的插件,旨在简化表单中标题和 slug 的管理。该插件提供了一个自定义的 TitleWithSlugInput
输入字段,允许用户轻松编辑标题和对应的 slug。其设计灵感来源于经典的 WordPress 标题与 slug 实现方式。
该插件具有以下特点:
- 自动生成 slug:如果 slug 尚未手动更新,则会自动从标题生成。
- 可配置性:所有标签均可自定义,支持使用自定义的 slugifier,并可隐藏主机名等。
- 多语言支持:支持多种语言的翻译。
- 暗模式支持:兼容暗模式。
2、项目快速启动
安装
首先,通过 Composer 安装该包:
composer require camya/filament-title-with-slug
配置
在 Filament 表单中使用 TitleWithSlugInput
字段:
use Camya\Filament\Forms\Components\TitleWithSlugInput;
TitleWithSlugInput::make(
fieldTitle: 'title', // 模型中存储标题的字段名
fieldSlug: 'slug' // 模型中存储 slug 的字段名
);
示例代码
以下是一个完整的示例,展示如何在 Filament 资源中使用 TitleWithSlugInput
:
use Filament\Forms;
use Filament\Resources\Form;
use Filament\Resources\Resource;
use Filament\Resources\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Camya\Filament\Forms\Components\TitleWithSlugInput;
class PostResource extends Resource
{
protected static ?string $model = Post::class;
protected static ?string $navigationIcon = 'heroicon-o-collection';
public static function form(Form $form): Form
{
return $form
->schema([
TitleWithSlugInput::make(
fieldTitle: 'title',
fieldSlug: 'slug'
),
// 其他表单字段
]);
}
// 其他资源方法
}
3、应用案例和最佳实践
应用案例
博客系统:在博客系统中,文章的标题和 slug 是必不可少的。使用 TitleWithSlugInput
可以简化管理,确保每个文章都有一个唯一的 slug,便于 SEO 优化。
产品管理系统:在产品管理系统中,产品的名称和对应的 URL slug 同样重要。通过该插件,可以轻松管理产品的 slug,确保每个产品都有一个友好的 URL。
最佳实践
- 自定义标签:根据项目需求,自定义输入字段的标签,使其更符合项目的语言风格。
- 使用自定义 Slugifier:如果需要特定的 slug 生成规则,可以自定义 slugifier 来满足需求。
- 多语言支持:利用插件的多语言支持,确保项目在不同语言环境下都能正常运行。
4、典型生态项目
- FilamentPHP:Filament 是一个现代的 Laravel 管理面板,提供了丰富的表单和表格组件。
TitleWithSlugInput
是 Filament 生态系统中的一个重要插件。 - Laravel:Laravel 是一个流行的 PHP 框架,广泛用于构建 Web 应用程序。
TitleWithSlugInput
可以无缝集成到 Laravel 项目中。 - Livewire:Livewire 是一个用于 Laravel 的全栈框架,允许开发者使用纯 PHP 编写动态前端。
TitleWithSlugInput
可以与 Livewire 结合使用,提供更丰富的用户体验。
通过以上模块的介绍,您可以快速上手并深入了解 Filament Title With Slug
插件的使用和配置。