Filament のタイトルとスラッグ入力コンポーネントの使い方
1、プロジェクト概要
Filament Title With Slug は、FilamentPHP 用に作成されたカスタムコンポーネントで、フォームにおけるタイトルとスラッグの管理を容易にするものです。このコンポーネントは、WordPress のタイトルとスラッグの仕組みに着想を得ており、タイトルとスラッグを同時に編集できる機能を提供します。
主な特徴:
- 自動スラッグ生成:スラッグが手動で変更されていない場合、タイトルから自動的に生成されます。
- 柔軟な設定:すべてのラベルはカスタマイズ可能で、独自のスラッグ生成ロジック(slugifier)の利用やホスト名の非表示も可能です。
- 多言語対応:複数言語に対応しており、ローカライズ可能です。
- ダークモード対応:ダークテーマとの互換性があります。
2、プロジェクトの初期設定
インストール方法
Composer を使用してパッケージをインストールします:
composer require camya/filament-title-with-slug
使用方法
Filament のフォームで TitleWithSlugInput コンポーネントを使用します:
use Camya\Filament\Forms\Components\TitleWithSlugInput;
TitleWithSlugInput::make(
titleField: 'title', // モデルのタイトルフィールド名
slugField: '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(
titleField: 'title',
slugField: 'slug'
),
// その他のフォーム要素
]);
}
// その他のリソースメソッド
}
3、活用例と推奨事項
実際の活用例
ブログプラットフォーム:記事のタイトルとスラッグは SEO に重要です。TitleWithSlugInput を使用することで、一意なスラッグを自動生成し、効率的に管理できます。
商品管理システム:商品名と URL スラッグの管理においても同様に有用です。スラッグを自動生成することで、ユーザーにとって分かりやすい URL を提供できます。
推奨事項
- ラベルのカスタマイズ:プロジェクトに合わせてラベルを調整することで、UI の統一感を保ちます。
- 独自スラッグ生成ロジックの利用:標準的なスラッグ生成ルールに合わない場合は、独自の slugifier を定義できます。
- 多言語環境への対応:言語ごとの翻訳に対応することで、グローバルな利用にも対応できます。
4、関連する技術スタック
- FilamentPHP:現代的な Laravel ダッシュボードフレームワークで、フォームとテーブルのコンポーネントが豊富に提供されています。
TitleWithSlugInputはこのエコシステムに自然に統合できます。 - Laravel:Web アプリケーション構築向けの PHP フレームワークで、
TitleWithSlugInputは Laravel アプリケーションに簡単に導入可能です。 - Livewire:Laravel 向けのインタラクティブなフロントエンドフレームワークで、
TitleWithSlugInputと併用することで、より洗練されたユーザー体験が実現できます。
これらの要素を理解することで、Filament Title With Slug コンポーネントの活用方法を深く把握できます。