目的

ここ最近、しばらくlaravel-adminという管理画面を作成するためのライブラリを使っていたので、調べたことやつまづいたところも含めて少しずつ書き起こそうと思います。

まずはインストール編です。簡単に管理画面を確認できるところまで見ていきましょう。

laravel-adminとは

laravelで簡単にDBの管理画面を作成することができるライブラリです。
ドキュメントやデモサイトなど使用するために必要な資料が充実しており、難しいカスタムを行う必要がなければものすごく簡単に管理画面が構築できます。

Laravel-admin(ドキュメント)
GitHubページ

基本的な使用方法は上記でカバーし、カスタマイズして使用したい際には直接ソースコードを読んで適宜書き換えていく形になります。

主観ですが、コード内のコメントも(おそらく書き換える前提の部分は)丁寧に書かれているので、しっかり読み解けば問題ないかと思います。

プロジェクトの作成

既に開発しているlaravelプロジェクトに追加する場合は、この章は飛ばしてもらって大丈夫です。

何もないところからlaravel-adminを試したい方は、まずlaravelプロジェクトを作成するところから始めましょう。

公式によると、現在のバージョンでは以下の環境が推奨されるようです。

  • PHP 7+
  • laravel 5.5+

This package requires PHP 7+ and Laravel 5.5, for old versions please refer to 1.4
laravel-admin install

$composer create-project --prefer-dist "laravel/laravel=5.5.*" <project-name>

DBも必要になってくるので、.envにDBの情報も書き足しておきましょう。
よければこちらの記事も参考にしてみてください。
【Laravel+MySQL+nginx】docker-composeで最小構成の環境構築 - SawaLog

インストール

laravelの準備ができたら早速laravel-adminをインストールします。

$composer require encore/laravel-admin

インストールが終わったら下記コマンドを実行します。

$php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"

$php artisan admin:install

これらを実行すると、app/Adminディレクトリが作られます。これからの実装はこのディレクトリ配下で行うことになります。
ファイルの初期配置は以下。

app/Admin
├── Controllers
│   ├── ExampleController.php
│   └── HomeController.php
├── bootstrap.php
└── routes.php

フロント周りのファイルは/public/packages/adminに置かれています。
構成ファイルはconfig/admin.phpです。後々触ることになります。

ここまでで既にダッシュボードは作成されているので、php artisan serveなどをして、http://localhost:8000/admin にアクセスしてみましょう。
ID・PASSどちらにもadminと入力し、無事ダッシュボードが表示されれば成功です。
早速DBテーブルの管理画面を作成していきましょう。

モデル・コントローラ作成

laravelでDBテーブルを認識するためにモデルを作成します。

$php artisan make:model Recipe

モデルが作成されたのを確認したら、それを利用してAdmin用のコントローラを作成します。

$php artisan admin:make RecipeController --model=App\\Recipe

成功すると、作成したコントローラのルーティング情報がターミナルに出力されます。
これをapp/Admin/routes.phpに記述しましょう。

$router->resource('admin/recipes', RecipeController::class);

上記ルーティング情報のURLを叩くと、それらしい画面が表示されていると思います。
あとは作成したAdmin用のコントローラを、ドキュメントを参考にしながら更新していく流れになります。

現在仕様として提供されているのは以下のページです。

  • 一覧画面(grid関数)
  • 詳細画面(show関数)
  • 新規作成・編集画面(form関数)

それぞれドキュメントに基本の使用方法からカスタマイズ方法まで乗っていますので、一通り目を通すことをお勧めします。

まとめ

とても簡単に導入できるので、気になっている方は一度試して見ると面白いかも知れません。
その他、主にカスタマイズ部分でつまづくことが多かったので、少しずつ記事にして行こうかと思います。

参考

Laravel-admin(ドキュメント)
laravel-admin(GitHub)