laravel-admin 一覧画面で使用するviewを個別化する

laravel-admin 一覧画面で使用するviewを個別化する

こんばんは、のるぼるのんです。

前回はlaravel-adminのviewファイルをresourcesディレクトリに移動し、編集できる様にしました。

今回は更に各モデルの一覧画面で使用するviewファイルを変更、個別化できる様にしたいと思います。

前回の内容はこちらを確認してください。

 

 

コントローラー追加


Userモデル、usersテーブルを使用して作業したいと思います。

まずはUserControllerを作成します。コンソール上で以下のコマンドを実行します。

コントローラー作成に成功すると、上のコメントが表示されるので、route.php にルーティングを登録します。

 

作成されたコントローラーの内容を確認してみます。

それぞれ、grid()関数で一覧画面を、detail()関数で詳細画面を、form()関数で編集画面を設定しています。

実際には拡張元のAdminController中、index(), show(), edit()がルーティング時にそれぞれ呼び出され、その中でgridなどを呼んでいる形になります。

それではgrid()関数を見ていきましょう。

Grid.phpを確認


改めてgrid()関数を見てみます。

テーブルの初期化や設定値などを記述したGridクラスのインスタンスを作成し、インスタンスに対してカラムやオプションなどを設定していく形です。

今度はGridクラスを実際に見てみましょう。

vendor/encore/laravel-admin/src/Grid.phpになります。

この中で$view変数にviewの呼び出し元のファイル名が記載されています。

Grid.phpをオーバーライドして、このファイル名を変更します。

 

 

 Grid.phpをオーバーライド


Grid.php をオーバーライドしたUserGrid.php を作成し、UserControllerで呼び出します。

ディレクトリは管理しやすいものでお願いします。

app/Admin/Extensions/User/UserGrid.php

resources/admin/extensions/users/table.blade.php

UserController

 

これで作業は完了です、お疲れ様でした。

これで特定の一覧画面の時にjsを仕込んだり、リンクを追加したりが容易になりました。

 

同様のことがFormでもできるので、次回はそちらを紹介したいと思います。

Laravelカテゴリの最新記事