Laravel Backpackを使ってみた! - インストール編

こんにちは、コバヤシです。
今回は、簡単に管理画面を導入できる「Laravel Backpack」を試していきたいと思います。

Laravel Backpackとは

Laravel BackpackとはLaravel用の管理パネルや管理ダッシュボードを迅速に構築するためのライブラリです。CRUD機能やユーザー認証、アクセス制御、ファイルアップロードなどの一般的な管理機能を容易に追加できるので、開発者は繁雑なバックエンドの実装から解放され、ビジネスロジックや他の重要な部分に集中することができます。
OPEN COREが無料、OPEN CORE + 追加のアドオンで1サイトのみインストール可能なSINGLE-PROJECT PROが69ユーロ、複数サイトにインストール可能なMULTI-PROJECT PROが399ユーロとなっています。

backpackforlaravel.com

インストール

今回はLaravel 10にLaravel Backpackを入れていきます。
Laravel10をインストール・初期設定を行った後、Composerでライブラリをインストールします。

composer require backpack/crud

その後、インストールの為のArtisanコマンドを叩きます。

php artisan backpack:install

途中、何点か質問されます。

Which Backpack theme would you like to install? (enter option number: 1, 2 or 3) [1]:
dd an admin user? (yes/no) [no]:

どのテーマをインストールするかという質問です。
1 : Tabler Theme
2 : CoreUIv2 Theme
3 : CoreUIv4 Theme

となっています。好きなテーマを選択します。

backpackforlaravel.com

dd an admin user? (yes/no) [no]:

Adminユーザーを追加するかです。
yesで追加しましょう。名前やメールアドレス、パスワードを入力すれば追加されます。

Would you like to install a premium Backpack add-on? (enter option number: 1, 2 or 3) [no]:

プレミアムのアドオンをインストールするか聞かれますが、無料版を使用するのでnoを選択します。

インストールが完了したら、
言語ファイルやviewファイルをvendor:publishしておきます。
実行することで、backpackが使用している言語ファイルやviewファイルが、所定の位置に吐き出されます。これを修正することでカスタマイズが出来るようになるので実行しておきましょう。

php artisan vendor:publish --provider="Backpack\CRUD\BackpackServiceProvider" --tag="views”
php artisan vendor:publish --provider="Backpack\CRUD\BackpackServiceProvider" --tag="lang”

以上でインストールが完了です。

ログイン

/admin/ にアクセスするとログイン画面が表示されます。 configのlocaleでjaを設定しておけば、日本語で表示されます。

先程登録したユーザーの認証情報でログインしましょう。

ダッシュボード

ログインするとダッシュボード画面になります。
Getting Startedが表示されていますが、不要なのでconfig/backpack/ui.phpのshow_getting_startedをfalseに設定します。

機能を追加する

手始めにユーザー管理を追加してみたいと思います。
以下のコマンドを実行します。

php artisan backpack:crud user

バリデーションをどこに記述するのか聞かれます。

How would you like to define your validation rules, for the Create and Update operations?
│ More info at https://backpackforlaravel.com/docs/5.x/crud-operation-create#validation
│ Valid options are request, array or field [request]:

request : Form Requestを利用します。
array : setValidationで設定を行います。
field : 各フィールドの定義内(addField)で設定を行います。

今回はrequestにしておきます。
バリデーション方法を選択すると、コントローラー等が作成されて完了です。

これだけで、ユーザー管理ができました。
と、言いたいところですが 実際は、バリデーションも何も入ってなく、
編集の時にはパスワードを空にして保存できないし、
パスワードもハッシュ化して保存されません。。。

このあたりは修正しないとですね。

まとめ

まだあまり触っていませんが、数ステップで管理画面のベースが出来るのは魅力的だと思いました。
これでカスタマイズが簡単に出来るようなら案件によっては取り入れることが出来るかもと期待しています。
次回はカスタマイズをやってみたいと思います。