Jul 12, 2024
composer create-project --prefer-dist laravel/laravel project-namecomposer create-project --prefer-dist laravel/laravel multicd multiphp artisan serve and check in browser..env file to add database credentials. Example:
DB_CONNECTION=mysql
DB_DATABASE=multi
DB_USERNAME=root
DB_PASSWORD=
composer require laravel/breeze --devphp artisan breeze:install
npm install and npm run buildphp artisan migratecreate_users_table.php migration:
$table->string('user_type')->default('user');
HomeController:
php artisan make:controller HomeController
web.php:
Route::get('/admin-dashboard', [HomeController::class, 'adminDashboard'])->name('admin.dashboard');
Route::get('/user-dashboard', [HomeController::class, 'userDashboard'])->name('user.dashboard');
HomeController:
public function adminDashboard() {
return view('admin.dashboard');
}
public function userDashboard() {
return view('user.dashboard');
}
resources/views/admin/ and resources/views/user/php artisan make:middleware AdminMiddlewareAdminMiddleware.php:
if (auth()->user()->user_type !== 'admin') {
return redirect('/');
}
return $next($request);
Kernel.php:
protected $routeMiddleware = [
...
'admin' =>](streamdown:incomplete-link)
\App\Http\Middleware\AdminMiddleware::class, ];
- Apply middleware to routes:
Route::middleware(['auth', 'admin'])->group(function () { Route::get('/admin-dashboard', [HomeController::class, 'adminDashboard'])->name('admin.dashboard'); }); Route::middleware(['auth'])->group(function () { Route::get('/user-dashboard', [HomeController::class, 'userDashboard'])->name('user.dashboard'); });
## Conclusion
- Successfully set up multi-user login with admin and user dashboards.
- Can further extend functionality for additional roles like manager.
- Recommended to watch additional tutorials for more complex setups.
## Further Learning
- Check linked videos for setting up three types of user logins (admin, user, manager).