🐡

Laravel-adminで管理するテーブルを追加する

2022/12/08に公開

ユーザーに対して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公式に色々なカスタマイズ方法が記載されているので、柔軟に変更可能です。
今回は、特にカスタマイズする必要性がないと判断したため、デフォルトのまま行きます!

スクリーンショット 2022-12-08 16.33.23.png
期待通りの画面が表示されました。
スクリーンショット 2022-12-08 16.40.25.png
新規登録画面も期待通りです。

「お知らせ機能を管理したい」といった場合に、Laravel-adminは導入コストが少ないのでかなりおすすめです。

Discussion