目次
Filamentに行き着いた経緯
管理画面を作りたくて、初めに見つけたのが「laravel-admin」だった。しかし、アップデートがあまりされていないようなので、却下することに。
続けて見つけたのが「filament」。デモ画面を見てひとめぼれ。活気もあるようなので、これに決定。
資料
- Laravel 10 Blog with Filament Admin Panel | Part 1
- [Laravel/Filament]超高速で管理画面を作る!
- Installation – Admin Panel – Filament (filamentphp.com)
- Tailwind Awesome
Filamentのインストール
本手順書にも下記の手順が書いてあるので、リンク先に行って作業する必要なない。
- Laravel環境の構築
Laravel環境構築(実践版)の「テンプレートから環境構築」の部分。 - Filamentのインストール
公式の「Installation」を参考にした。
⚠が、何故かはじめは同じ手順をしているはずがadmin画面がエラーで表示されず何度もやりなおした。あれは何だったのだろうか。v2ではなくv3を入れようとしていたのだろうか。不明だ。たぶん、他のDockerが起動している状態で新しいDockerをインストールしようとして失敗したと思われる。
Laravelのインストール
テンプレートをダウンロード
ucan-labさんのテンプレートをダウンロード
git clone https://github.com/ucan-lab/docker-laravelフォルダ名を変更(任意)
練習用なのでsample1に変更
mv docker-laravel sample1構築
テンプレに基づき、PHP、NGINX、MySQL、Laravel環境を構築する。
cd sample1
make create-projectappコンテナに入る
以下の作業はappコンテナ内で行う。
- Filamentのインストール
make appどのバージョンをインストールするか?
バージョン2.xと3.xが有る。古いほうが情報が多いが、公式は3.xを推している。
バージョン3.xのインストール
公式のインストレーションを見ながら作業をした。
設定の編集
composer.jsonの項目を編集する
"minimum-stability": "dev",filamentのインストール
appコンテナ内で下記のコマンド
composer require filament/filament:"^3.0-stable" -WFilament Panel Builder のインストール
これをインストールするとパネルを含めて一通りのパッケージ(ウィジェットなど)も使えるようになるっぽい。
php artisan filament:install --panels初期ユーザーの作成
php artisan make:filament-userconfigファイルの発行(生成)
後々必要になるであろうconfigファイルを作っておく。
php artisan vendor:publish --tag=filament-configバージョン2.xのインストール
公式のインストレーションを見ながら作業をした。
filamentのインストール
appコンテナ内で下記のコマンド
composer require filament/filament:"^2.0"jsonファイルの編集
composer.jsonのpost-update部分に追記。元からあった行の最後に,を入れ忘れないように。
"post-update-cmd": [
"@php artisan vendor:publish --tag=laravel-assets --ansi --force",
"@php artisan filament:upgrade"
],初期ユーザーの作成
php artisan make:filament-user確認
localhost/admin/にアクセスして確認。
追加のインストール
filament breezyの導入(⚠要検討)
公式のBreezeのfilament版。公式よりもfilament専用であれば競合なども少ないだろうということで採用。
もう一つの候補
- FilamentAccessControl
Laravel 管理画面 FilamentにFilamentAccessControlプラグインでユーザ権限管理を追加する
インストール
composer require jeffgreco13/filament-breezy編集
config/filament.phpを編集せよ!とあるけれど、これ、どこのフォルダなんだ??venderの方には入るんだけど??⚠要調査
vendor/filament/filament/config/filament.php
'auth' => [
'guard' => env('FILAMENT_AUTH_GUARD', 'web'),
'pages' => [
'login' => \Filament\Http\Livewire\Auth\Login::class,
],
],
↓
"auth" => [
"guard" => env("FILAMENT_AUTH_GUARD", "web"),
"pages" => [
"login" => \JeffGreco13\FilamentBreezy\Http\Livewire\Auth\Login::class,
],
],