🐡
Laravel-adminで管理するテーブルを追加する
ユーザーに対してPOPUPを表示させる機能を実装しています。
ユーザーグループIDを追加することで通知するユーザを分けることを可能にしています。
現状はダイレクトにSQLを入力するスタイルですが、Laravel-adminを使用してIDの登録、編集、削除を容易にできるようにします。
やること
- Laravel-admin用のコントローラーを追加
- ルーティングの追加
- フォーム画面の編集
以前、Laravel-adminの導入はすでに行なっているため、作業自体は簡単です。
Laravel-admin用のコントローラーを追加
公式サイトを参考に作業を行いましたが、QuickStartに書かれている内容が古いディレクトリ構造になっているため、以下のコマンドで実行。
php artisan admin:make CollectionController --model=App\\Models\\Collection
※Laravel-adminをインストールしていない場合は、先にインストールが必要です。
ルーティングの追加
Adminディレクトリ内のroutes.php
にデータを追加する。
$router->resource('/collections', CollectionController::class);
コントローラーの内容
<?php
namespace App\Admin\Controllers;
use App\Models\Collection;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Form;
use Encore\Admin\Grid;
use Encore\Admin\Show;
class CollectionController extends AdminController
{
protected function grid()
{
$grid = new Grid(new Collection());
$grid->column('id', __('Id'));
$grid->column('name', __('Name'));
$grid->column('created_at', __('Created at'));
$grid->column('updated_at', __('Updated at'));
return $grid;
}
protected function detail($id)
{
$show = new Show(Collection::findOrFail($id));
$show->field('id', __('Id'));
$show->field('name', __('Name'));
$show->field('created_at', __('Created at'));
$show->field('updated_at', __('Updated at'));
return $show;
}
protected function form()
{
$form = new Form(new Collection());
$form->text('name', __('Name'));
return $form;
}
}
コントローラーはLaravel-admin公式に色々なカスタマイズ方法が記載されているので、柔軟に変更可能です。
今回は、特にカスタマイズする必要性がないと判断したため、デフォルトのまま行きます!
期待通りの画面が表示されました。
新規登録画面も期待通りです。
「お知らせ機能を管理したい」といった場合に、Laravel-adminは導入コストが少ないのでかなりおすすめです。
Discussion