Laravel Admin PanelのCRUD Generatorをカスタマイズしてもっと実用的に!

crud-generator-custom
  • URLをコピーしました!

前回の記事では、Laravel 5.5に対応したLaravel Admin Panelの紹介と基本的な使い方を紹介しました。
今回はLaravel Admin PanelCRUD Generator機能を拡張し、プログラムを書かずに管理画面を構築することを目的として、より実用的なアプリケーションを作成しましたので紹介したいと思います。

minory
Laravel 5.5に対応したCRUD Generator付きの管理画面(Admin)を試してみる | minory AppzCoderさんがGithubで提供しているLaravelパッケージの1つに「Laravel Admin Panel」というものがあります。 GitHub - appzcoder/laravel-admin: Laravel Admi

目次

CRUD Generatorの機能を知る

実用的にするには何が足りないか?を考えてみましょう。
CRUD Generatorコマンドとしては、

もあり、それぞれ個別に作成することもできますが、Laravel Admin PanelCRUD Generatorは、

を利用し、上記すべてのファイル作成します。
crud:generateコマンドのオプションは15個程ありますが、Laravel Admin Panelではその全てを使用していません。
例えば、バリデーションは必須(required)のみ、できればリレーションも設定したいですね。

追加した機能

Pagination(ページネーション)
1ページの最大表示件数を設定します。
Relationships(リレーション)
テーブルの結合にJOINを使わずにモデルに利用するか設定します。
Nullable(NULLの許可)
NULLのデータを許可するかどうか設定します。
Index(INDEXの利用)
INDEXを利用するか設定します。
Validation(バリデーション)
初期状態では必須(required)しか設定できなかったので、様々なバリデーションを利用できるようにしました。
カスタマイズ前

カスタマイズ前

Viewをカスタマイズする

viewはphp artisan vendor:publish済なので、以下のファイルをそのまま書き換えます。

ページネーションとリレーション

「Table Fields:」より上にページネーションリレーションを設定する項目を追加します。

Table Fieldsの変更

Table Fields内に以下のNullable(Null許可)Indexの設定項目を追加します。

また、初期状態だと「Required」という項目がありますが、これをrequired以外のバリデーションも設定できるように変更します。

変更前

変更後

Controllerをカスタマイズする

ルートの変更

まずは、composer updateした際にファイルを上書きされないよう、パッケージのファイルをvendorからapp以下コピーしてカスタマイズします。

コピー元

コピー先

/routes/web.phpを変更して、コピー先のファイルへルートを設定します。

変更前

変更後

Namespaceの変更

当然ですが、ルートが変わったのでNamespaceも変更しておきます。

変更前

変更後

フィールドのをカスタマイズ

上記でコピーしたProcessController.phpカスタマイズします。
39~47行目のforeach付近を以下のように書き換えます。

変更前

変更後

これで、Indexバリデーションの下準備とNullable設定が完了しました。
次に、52~54行目の以下のように書き換えます。

変更前

変更後

以上でバリデーションは完了です。
最後に、51~75行目付近に以下のコードを追加し、Indexを完成させてリレーションページネーションを追加します。

追加するコード

完成したのがこちらです。
minoryorg/laravel-crud-admin: Laravel 5.5 + CRUD Generator + Admin Panel

カスタマイズ後

カスタマイズ後

他にも使えるコマンドもあるし、テンプレートを切り替えたり、修正や削除にも対応したいので、まだまだ改造する余地はあります。

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

コメント

コメント一覧 (1件)

コメントする

CAPTCHA


目次