😽

【Filament 2.x】 artisanコマンドチートシート

2023/05/28に公開

概要

alpinejs,livewire,tailwindで作られている最強管理画面生成ライブラリ<b>Filament</b>

https://filamentphp.com/

のコマンドチートシート

まとめ

$ php artisan make:filament-resource Customer
$ php artisan make:filament-resource Customer --simple
$ php artisan make:filament-resource Customer --generate
$ php artisan make:filament-resource Customer --view

$ php artisan make:filament-page Settings
$ php artisan make:filament-page Settings --resource=UserResource --type=ViewRecord
$ php artisan make:filament-page Settings --resource=UserResource --type=custom

$ php artisan make:filament-relation-manager CategoryResource posts title
$ php artisan make:filament-relation-manager CategoryResource posts title --soft-deletes
$ php artisan make:filament-relation-manager CategoryResource posts title --attach
$ php artisan make:filament-relation-manager CategoryResource posts title --associate

$ php artisan make:livewire-form HogeForm
$ php artisan make:livewire-table HogeTable

$ php artisan make:filament-widget StatsOverview --stats-overview
$ php artisan make:filament-widget BlogPostsChart --chart
$ php artisan make:filament-widget LatestOrders --table
$ php artisan make:filament-widget CustomerOverview --resource=CustomerResource

リソースクラス作成

$ php artisan make:filament-resource Customer

モデル名と違う名前で生成した際は、モデルクラスの定義を書き換える事

class HogeResource extends Resource
{
    //↓これ
    protected static ?string $model = Store::class;

オプション

オプション 効果 ドキュメントリンク
--simple 一覧/作成/編集を1ページのみで管理するManageRecordsクラスを自動生成(作成/編集はモーダルが展開される) ドキュメント
--generate マイグレーションの情報からフォーム、テーブルの項目を自動生成します ドキュメント
--view ViewRecordクラスを追加で生成します ドキュメント

--simleオプションについて

FilamentデモのCategories管理機能のように、作成・一覧をモーダルで管理するクラスが作成される。
image.png

--generateオプションについて

マイグレーションファイルから項目を自動生成するにはdoctrine/dbalパッケージが必要です

$ composer require doctrine/dbal --dev

カスタムページクラス作成

https://filamentphp.com/docs/2.x/admin/pages/getting-started#creating-a-page

$ php artisan make:filament-page Settings

オプション

オプション 効果 ドキュメントリンク
--resource=UserResource --type=ViewRecord UserResourceディレクトリにUserResourceのViewRecordクラスを追加する ドキュメント
--resource=UserResource --type=custom UserResourceディレクトリにUserResourceのカスタムページクラスを追加する ドキュメント

リレーションマネージャー作成

https://filamentphp.com/docs/2.x/admin/resources/relation-managers

$ php artisan make:filament-relation-manager CategoryResource posts title

CategoryResource posts title ↓
親リソースクラス名 リレーション名 リレーション先の看板的なカラム名

オプション

オプション 効果 ドキュメントリンク
--soft-deletes 論理削除を管理する機能を追加で作成 ドキュメント
--attach BelongsToMany,MorphToManyのリレーション時に使用する。紐付け/紐付け解除のアクションが追加される ドキュメント
--associate HasMany, HasManyThrough,MorphManyのリレーション時に使用する。紐付け/紐付け解除のアクションが追加される ドキュメント

フォームビルダー作成

フォームビルダーlivewireコンポーネントを作成します。

$ php artisan make:livewire-form クラス名

↓とやってる事は同じです

https://filamentphp.com/docs/2.x/forms/getting-started#preparing-your-livewire-component

テーブルビルダー作成

テービルビルダーlivewireコンポーネントを作成します。

$ php artisan make:livewire-table クラス名

↓とやってる事は同じです

https://filamentphp.com/docs/2.x/tables/getting-started#preparing-your-livewire-component

ウィジェット

$ php artisan make:filament-widget CustomViewWidget

オプション未指定だと、Widgetクラスと対応するbladeファイルが生成されます。
自分で見た目を構築する必要あり。

オプション

オプション 効果 ドキュメントリンク
--stats-overview カード形式のテンプレートが作成 ドキュメント
--chart チャート形式のテンプレートが作成 ドキュメント
--table テーブル形式のテンプレートが作成 ドキュメント
--resource=リソースクラス名 指定したリソースディレクトリ下にウィジェットクラスが作成 ドキュメント

Discussion