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