フリーランス 技術調査ブログ

フリーランス/エンジニア Ruby Python Nodejs Vuejs React Dockerなどの調査技術調査の備忘録

Laravel-adminのUserControllerを変更する

はじめに

  • Laravel adminのadmin_usersテーブルにカラム追加と画面を変更する

手順

  • vendorフォルダにあるlaravel-adminのコントローラーを自身のappフォルダ内に移動させる。ファイル名は変更する。
$ cp ./vendor/encore/laravel-admin/src/Controllers/UserController.php ./app/Admin/Controllers/AdminUserController.php
  • app/Admin/routes.phpファイルに下記の記述を追記する
Route::group([
    'prefix'        => config('admin.route.prefix'),
    'namespace'     => config('admin.route.namespace'),
    'middleware'    => config('admin.route.middleware'),
], function (Router $router) {
     (省略)
    $router->resource('auth/users', AdminUserController::class);
     (省略)
}

- migrationでadmin_usersテーブルにカラムを追加する指定をする

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class AddSponsorIdToAdminUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('admin_users', function (Blueprint $table) {
            $table->integer('hogehoge_id')->nullable()->default(0);
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('admin_users', function (Blueprint $table) {
            $table->dropColumn(['hogehoge_id']);
        });
    }
}

- 最初にコピーしたコントローラーのファイルに追加したカラムを追加する。

    public function form()
    {
        return Administrator::form(function (Form $form) {
                (省略)
          $form->number('hogehoge_id','HOGEHOGE_ID'); 
                (省略)
  }
    }

実行結果

f:id:PX-WING:20201229150136p:plain