Laravel Admin セットアップ方法

こんにちは!

システム開発部の松木です。

今回の記事では Laravel Admin のセットアップについてお話します!

Laravel Admin とは?

Laravel Admin は、Laravelフレームワークを使用して開発された管理者向けのツールです。

アプリケーションの管理ダッシュボードやコントロールパネルを簡単に作成することが可能で、

Laravel Admin を使用し、様々なデータやリソースを管理することができます。

環境

Docker: 23.0.1

Laravel: 10.37.1

PHP: 8.2

MySQL: 8.0

Nginx: 1.23.3

セットアップ手順

ログイン画面表示

下記コマンドを実行し、Laravel Admin をインストールします。


composer require encore/laravel-admin

次に下記コマンドで、インストールを行った Laravel Admin のファイルを、Laravel のプロジェクトに追加します。


php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"

次に下記コマンドで、Laravel Admin の標準テーブルの作成を行います。


php artisan admin:install

上記のコマンドが正常に実行されると下記のように表示され、標準テーブルの作成が完了です。


root@d816ac03c504:/var/www/html# php artisan admin:install

INFO Preparing database.

Creating migration table .............................................................................................................. 126ms DONE

INFO Running migrations.

2014_10_12_000000_create_users_table .................................................................................................. 133ms DONE
2014_10_12_100000_create_password_reset_tokens_table .................................................................................. 190ms DONE
2016_01_04_173148_create_admin_tables ................................................................................................. 976ms DONE
2019_08_19_000000_create_failed_jobs_table ............................................................................................ 101ms DONE
2019_12_14_000001_create_personal_access_tokens_table ................................................................................. 147ms DONE

INFO Seeding database.

Admin directory was created: /app/Admin
HomeController file was created: /app/Admin/Controllers/HomeController.php
AuthController file was created: /app/Admin/Controllers/AuthController.php
ExampleController file was created: /app/Admin/Controllers/ExampleController.php
Bootstrap file was created: /app/Admin/bootstrap.php
Routes file was created: /app/Admin/routes.php

ここまで行うと、一度 Laravel-Admin のログイン画面にアクセスしてみましょう。

正常にアクセスできると下記のような画面が表示されます。

管理者ユーザー作成

ログイン画面の表示まで完了しましたが、肝心のログインユーザーの作成を行えていません。

次に行うのはログインを行う管理者ユーザーの作成です。

まずは適当な seeder の作成を行います。

今回では、UserSeeder という名前で作成を行う為、下記コマンドを実行します。


php artisan make:seeder UserSeeder

次に作成した seeder の中に記載する処理を、vender配下の seeder を利用するため、

/vendor/encore/laravel-admin/src/Auth/Database/AdminTablesSeeder.phpファイルを開きpublic function run(){}の中身をコピーしてください。

コピーした内容を UserSeeder の public function run(){}の中に置き換えてください

置き換えた内容が下記になります。

<?php

namespace Database\Seeders;

use Encore\Admin\Auth\Database\Administrator;
use Encore\Admin\Auth\Database\Menu;
use Encore\Admin\Auth\Database\Permission;
use Encore\Admin\Auth\Database\Role;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;

class UserSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run()
    {
        // create a user.
        Administrator::truncate();
        Administrator::create([
            'username' => 'admin',
            'password' => Hash::make('admin'),
            'name'     => 'Administrator',
        ]);

        // create a role.
        Role::truncate();
        Role::create([
            'name' => 'Administrator',
            'slug' => 'administrator',
        ]);

        // add role to user.
        Administrator::first()->roles()->save(Role::first());

        //create a permission
        Permission::truncate();
        Permission::insert([
            [
                'name'        => 'All permission',
                'slug'        => '*',
                'http_method' => '',
                'http_path'   => '*',
            ],
            [
                'name'        => 'Dashboard',
                'slug'        => 'dashboard',
                'http_method' => 'GET',
                'http_path'   => '/',
            ],
            [
                'name'        => 'Login',
                'slug'        => 'auth.login',
                'http_method' => '',
                'http_path'   => "/auth/login\r\n/auth/logout",
            ],
            [
                'name'        => 'User setting',
                'slug'        => 'auth.setting',
                'http_method' => 'GET,PUT',
                'http_path'   => '/auth/setting',
            ],
            [
                'name'        => 'Auth management',
                'slug'        => 'auth.management',
                'http_method' => '',
                'http_path'   => "/auth/roles\r\n/auth/permissions\r\n/auth/menu\r\n/auth/logs",
            ],
        ]);

        Role::first()->permissions()->save(Permission::first());

        // add default menus.
        Menu::truncate();
        Menu::insert([
            [
                'parent_id' => 0,
                'order'     => 1,
                'title'     => 'Dashboard',
                'icon'      => 'fa-bar-chart',
                'uri'       => '/',
            ],
            [
                'parent_id' => 0,
                'order'     => 2,
                'title'     => 'Admin',
                'icon'      => 'fa-tasks',
                'uri'       => '',
            ],
            [
                'parent_id' => 2,
                'order'     => 3,
                'title'     => 'Users',
                'icon'      => 'fa-users',
                'uri'       => 'auth/users',
            ],
            [
                'parent_id' => 2,
                'order'     => 4,
                'title'     => 'Roles',
                'icon'      => 'fa-user',
                'uri'       => 'auth/roles',
            ],
            [
                'parent_id' => 2,
                'order'     => 5,
                'title'     => 'Permission',
                'icon'      => 'fa-ban',
                'uri'       => 'auth/permissions',
            ],
            [
                'parent_id' => 2,
                'order'     => 6,
                'title'     => 'Menu',
                'icon'      => 'fa-bars',
                'uri'       => 'auth/menu',
            ],
            [
                'parent_id' => 2,
                'order'     => 7,
                'title'     => 'Operation log',
                'icon'      => 'fa-history',
                'uri'       => 'auth/logs',
            ],
        ]);

        // add role to menu.
        Menu::find(2)->roles()->save(Role::first());
    }
}

次に作成した UserSeeder を DatabaseSeeder の中に記載してください。

<?php

namespace Database\Seeders;

// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     */
    public function run(): void
    {
        $this->call([
            UserSeeder::class,
        ]);
    }
}

ここまで完了すれば、あとは seeder を回すだけです。


php artisan db:seed

seeder が回り切れば再度ログイン画面に行き、seeder で設定を行った Username と Password を入力します。

今回は Username と Password 共に admin という文字で登録しているので、実際に利用するときは変更をお願いします。

どちらも admin を入力し、ログインを行うと下記のような画面に遷移します。

正常にログインも行うことが可能となりました。

これで Laravel Admin のセットアップは完了となります。

まとめ

いかがでしたでしょうか。

Laravel Admin はセットアップが非常に簡単で、管理者パネルを迅速に構築できますし、

また、Laravel Admin でテーブルを作成すれば、テーブルを GUI で操作することも可能となりますので、

是非使用してみてください。

最後に

私が所属するシステム開発部のサービスサイト「SEKARAKU Lab(セカラク ラボ)」を開設しました。
ビヨンドは、サーバーの設計・構築から運用までをワンストップでお任せいただけますので、サーバーサイド開発でお困りの方はお気軽にお問い合わせください。

● SEKARAKU Lab:https://sekarakulab.beyondjapan.com

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
2
読み込み中...
2 票, 平均: 1.00 / 12
2,501
X facebook はてなブックマーク pocket

この記事をかいた人

About the author

松木

ポーカーとラグビーが好きです。
MARVELは「ハルク」が好き

座右の銘は集中力×時間+運