0
0

More than 1 year has passed since last update.

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

Posted at

ユーザーに対して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は導入コストが少ないのでかなりおすすめです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0