Laravel Admin setup method
Hello!
My name is Matsuki from the System Development Department.
In this article, we will talk about setting up Laravel Admin!
What is Laravel Admin?
Laravel Admin is an administrator tool developed using the Laravel framework.
You can easily create application management dashboards and control panels.
You can use Laravel Admin to manage various data and resources.
environment
Docker: 23.0.1
Laravel: 10.37.1
PHP: 8.2
MySQL: 8.0
Nginx: 1.23.3
Setup instructions
Login screen display
Run the command below to install Laravel Admin.
composer require encore/laravel-admin
Next, use the command below to add the installed Laravel Admin files to the Laravel project.
php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"
Next, use the command below to create a standard table in Laravel Admin.
php artisan admin:install
If the above command is executed successfully, the following will be displayed and the creation of the standard table is complete.
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
Once you have done this, try accessing the Laravel-Admin login screen.
If the access is successful, the following screen will be displayed.
Create administrator user
I have completed displaying the login screen, but I have not been able to create the important login user.
The next step is to create an administrator user to log in.
First, create a suitable seeder.
This time, we will create it with the name UserSeeder, so run the following command.
php artisan make:seeder UserSeeder
Next, in order to use the seeder under the vendor, the process described in the seeder created is
Open the /vendor/encore/laravel-admin/src/Auth/Database/AdminTablesSeeder.php file and copy the contents of public function run(){}.
Replace the copied content inside UserSeeder's public function run(){}
The replaced contents are as follows.
<?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()); } }
Next, write the UserSeeder you created in the 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, ]); } }
Once you've done this, all you have to do is turn the seeder.
php artisan db:seed
Once the seeder is running, go to the login screen again and enter the Username and Password that you set in the seeder.
This time, both the Username and Password are registered as admin, so please change them when actually using them.
If you enter admin in both cases and log in, you will be redirected to a screen like the one below.
It is now possible to log in normally.
Laravel Admin setup is now complete.
summary
What did you think?
Laravel Admin is very easy to set up and allows you to quickly build an admin panel.
Also, if you create a table with Laravel Admin, you can operate the table with the GUI.
Please try using it.
lastly
We have opened the service site "SEKARAKU Lab" for the system development department to which I belong.
Beyond is a one-stop service for everything from server design and construction to operation, so if you have any trouble with server-side development, please feel free to contact us.
● SEKARAKU Lab: https://sekarakulab.beyondjapan.com