Laravel 5.5に対応したCRUD Generator付きの管理画面(Admin)を試してみる

laravel-admin
  • URLをコピーしました!

AppzCoderさんがGithubで提供しているLaravelパッケージの1つに「Laravel Admin Panel」というものがあります。 GitHub – appzcoder/laravel-admin: Laravel Admin Panel一見、ロール(役割)付きの管理画面を提供しているのかと思ったら、同じくAppzCoderさんのLaravel 5以降に対応している「CRUD Generator」がArtisanコマンドでなく、GUIで操作できるようになっているではありませんか!
これは試してみるしかない!と思い、早速Cloud9に開発環境を構築。

minory
Cloud9にPHP7.1+Laravel5.5の動作環境を自動で構築するスクリプト | minory 【祝!】Laravel 5.5(LTS)のリリース記念として、誰でも簡単にLaravelに触れていただけるように、オンラインエディタである「Cloud9」に自動で環境構築してくれるシェル...

目次

Laravel Adminのインストール

READMEに書いてある通り、使い方はとても簡単です。
まずは、composerコマンドを使ってパッケージをダウンロードします。

次に、artisanコマンドでadminパッケージをインストールします。

最後に、app/User.phpHasRolesを追加したら完了です。

最初にすること

このままでも機能しますが、せっかくロールパーミッション(許可権限)設定機能があるので、ユーザーを作成しましょう。
まずロールを作成し、作成したロールに対してパーミッションを与え、ロールを持つユーザーを作成します。
作成したロールやパーミッションは以下のように利用することができます。

最後にチェック用のミドルウェアを反映させれば完了です。

注)現在は問題ありませんが、「Add New」ボタンを押すと新規登録画面が表示できないエラーが発生していました。Laravel 5.5.0~5.5.9まではroutes/web.phpRoute::resource('...');でエラーが発生するようなので、composer updateで最新の状態にしておきましょう。

CRUD Generatorを使ってみよう!

CRUD Generator(クラッド ジェネレーター)のCRUDとは…

CRUD(クラッド)とは、ほとんど全てのコンピュータソフトウェアが持つ永続性の4つの基本機能のイニシャルを並べた用語。その4つとは、Create(生成)、Read(読み取り)、Update(更新)、Delete(削除)である。ユーザインタフェースが備えるべき機能(情報の参照/検索/更新)を指す用語としても使われる。
CRUD – Wikipedia

要は、アプリケーションに必要なCRUD機能付きのMVC(Model、View、Controller)とDBにテーブル自動で作成してくれるものです。では、左サイドバーのTools → Generatorをクリックしてみましょう。

CRUD Generator

CRUD Generator


入力項目に従って入力し、「Generate」ボタンを押すだけで完成です!CRUD Generatorで作成されるファイルは、

  • /app/Http/Controllers/<Crud Name>Controller.php
  • /app/<Crud Name>.php
  • /database/migrations/<日時>_create_<Crud Name>_table.php
  • /resources/views/<Crud Name>/create.blade.php
  • /resources/views/<Crud Name>/edit.blade.php
  • /resources/views/<Crud Name>/form.blade.php
  • /resources/views/<Crud Name>/index.blade.php
  • /resources/views/<Crud Name>/show.blade.php
  • /resources/views/<Crud Name>/create.blade.php
  • /resources/laravel-admin/menus.json(JSON形式のModules=>itemsに追加)
  • /routes/web.php(最後の行に)

ちなみにmigrationsに作成されたファイルはphp artisan migrate済みです。

ロール別にアクセスを制御

初期状態のままでは、ログインしてもしなくても誰でも/admin以下にアクセスすることができます。
そこで、/routes/web.phpをカスタマイズしてアクセス制限を付け加えましょう。

もちろん、namespaceprefixを使った指定方法も可能です。

また、あまりrouteに書き過ぎると可読性が悪くなるので、ControllerMiddlewareを追加してもいいでしょう。注)CRUD Generator使用時に出力されるルート設定は最後の行に追加されますので、ルートグループを作成したら手動で中に入れる必要があります。crudコマンドには他にバリデーションリレーションのオプションも存在します。
次回は拡張する方法を紹介します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメント一覧 (2件)

コメントする

CAPTCHA


目次