Laravel 9 Upload Image and Display
How to install laravel 9
https://tutorial101.blogspot.com/2022/02/how-to-install-laravel-9.html
Connecting our Database
open .env file root directory.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laraveldb
DB_USERNAME=root
DB_PASSWORD=
Database Migration
php artisan migrate
C:\xampp\htdocs\laravel\laravelproject>php artisan migrate
Migration table created successfully.
check database table
Create Controller
Create the controller name which is CustomAuthController
php artisan make:controller CustomAuthController
C:\xampp\htdocs\laravel\laravelproject>php artisan make:controller CustomAuthController
change it with the following codes:
laravelproject\app\Http\Controllers\CustomAuthController.php
//laravelproject\app\Http\Controllers\CustomAuthController.php <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Hash; use Session; use App\Models\User; use Illuminate\Support\Facades\Auth; class CustomAuthController extends Controller { public function home() { return view('homepage'); } public function index() { return view('login'); } public function login(Request $request) { $request->validate([ 'email' => 'required', 'password' => 'required', ]); $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { return redirect()->intended('dashboard') ->with('message', 'Signed in!'); } return redirect('/login')->with('message', 'Login details are not valid!'); } public function signup() { return view('registration'); } public function signupsave(Request $request) { $request->validate([ 'name' => 'required', 'email' => 'required|email|unique:users', 'password' => 'required|min:6', ]); $data = $request->all(); $check = $this->create($data); return redirect("dashboard"); } public function create(array $data) { return User::create([ 'name' => $data['name'], 'email' => $data['email'], 'password' => Hash::make($data['password']) ]); } public function dashboard() { if(Auth::check()){ return view('dashboard'); } return redirect('/login'); } public function signOut() { Session::flush(); Auth::logout(); return redirect('login'); } }Route
laravelproject\routes\web.php
//laravelproject\routes\web.php <?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\CustomAuthController; //Route::get('/', function () { // return view('welcome'); //}); Route::get('/', [CustomAuthController::class, 'home']); Route::get('dashboard', [CustomAuthController::class, 'dashboard']); Route::get('login', [CustomAuthController::class, 'index'])->name('login'); Route::post('postlogin', [CustomAuthController::class, 'login'])->name('postlogin'); Route::get('signup', [CustomAuthController::class, 'signup'])->name('register-user'); Route::post('postsignup', [CustomAuthController::class, 'signupsave'])->name('postsignup'); Route::get('signout', [CustomAuthController::class, 'signOut'])->name('signout');Create Blade View Files
laravelproject\resources\views\homepage.blade.php
Bootstrap 5
https://getbootstrap.com/docs/5.0/getting-started/introduction/
https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css
//laravelproject\resources\views\homepage.blade.php <!DOCTYPE html> <html> <head> <title>Laravel 9 Custom Auth Login and Registration</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css" rel="stylesheet"> </head> <body> <nav class="navbar navbar-light navbar-expand-lg mb-5" style="background-color: #0dcaf0;"> <div class="container"> <a class="navbar-brand mr-auto" href="#">Cairocoders</a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarNav"> <ul class="navbar-nav"> @guest <li class="nav-item"> <a class="nav-link" href="{{ route('login') }}">Login</a> </li> <li class="nav-item"> <a class="nav-link" href="{{ route('register-user') }}">Register</a> </li> @else <li class="nav-item"> <a class="nav-link" href="{{ route('signout') }}">Logout</a> </li> @endguest </ul> </div> </div> </nav> @yield('content') </body> </html>laravelproject\resources\views\login.blade.php
//laravelproject\resources\views\login.blade.php @extends('layout') @section('content') <main class="login-form"> <div class="cotainer"> <div class="row justify-content-center"> <div class="col-md-4"> <div class="card"> <h3 class="card-header text-center">Login</h3> @if(\Session::has('message')) <div class="alert alert-info"> {{\Session::get('message')}} </div> @endif <div class="card-body"> <form method="POST" action="{{ route('postlogin') }}"> @csrf <div class="form-group mb-3"> <input type="text" placeholder="Email" id="email" class="form-control" name="email" autofocus> @if ($errors->has('email')) <span class="text-danger">{{ $errors->first('email') }}</span> @endif </div> <div class="form-group mb-3"> <input type="password" placeholder="Password" id="password" class="form-control" name="password"> @if ($errors->has('password')) <span class="text-danger">{{ $errors->first('password') }}</span> @endif </div> <div class="form-group mb-3"> <div class="checkbox"> <label> <input type="checkbox" name="remember"> Remember Me </label> </div> </div> <div class="d-grid mx-auto"> <button type="submit" class="btn btn-dark btn-block">Signin</button> </div> </form> </div> </div> </div> </div> </div> </main> @endsectionlaravelproject\resources\views\layout.blade.php
//laravelproject\resources\views\layout.blade.php <html> <head> <title>Laravel 9 Custom Auth Login and Registration</title> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css"> </head> <body> <div class="container" style="padding:50px;"> @yield('content') </div> </body> </html>laravelproject\resources\views\registration.blade.php
//laravelproject\resources\views\registration.blade.php @extends('layout') @section('content') <main class="signup-form"> <div class="cotainer"> <div class="row justify-content-center"> <div class="col-md-4"> <div class="card"> <h3 class="card-header text-center">Register User</h3> <div class="card-body"> <form action="{{ route('postsignup') }}" method="POST"> @csrf <div class="form-group mb-3"> <input type="text" placeholder="Name" id="name" class="form-control" name="name" autofocus> @if ($errors->has('name')) <span class="text-danger">{{ $errors->first('name') }}</span> @endif </div> <div class="form-group mb-3"> <input type="text" placeholder="Email" id="email_address" class="form-control" name="email" autofocus> @if ($errors->has('email')) <span class="text-danger">{{ $errors->first('email') }}</span> @endif </div> <div class="form-group mb-3"> <input type="password" placeholder="Password" id="password" class="form-control" name="password"> @if ($errors->has('password')) <span class="text-danger">{{ $errors->first('password') }}</span> @endif </div> <div class="form-group mb-3"> <div class="checkbox"> <label><input type="checkbox" name="remember"> Remember Me</label> </div> </div> <div class="d-grid mx-auto"> <button type="submit" class="btn btn-dark btn-block">Sign up</button> </div> </form> </div> </div> </div> </div> </div> </main> @endsectionlaravelproject\resources\views\dashboard.blade.php
//laravelproject\resources\views\dashboard.blade.php <!DOCTYPE html> <html> <head> <title>Laravel 9 Custom Auth Login and Registration</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"> </head> <body> <nav class="navbar navbar-light navbar-expand-lg mb-5" style="background-color: #0dcaf0;"> <div class="container"> <a class="navbar-brand mr-auto" href="#">Cairocoders</a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarNav"> <ul class="navbar-nav"> <li class="nav-item"> <a class="nav-link" href="">Profile</a> </li> <li class="nav-item"> <a class="nav-link" href="{{ route('signout') }}">Logout</a> </li> </ul> </div> </div> </nav> <div class="container"><br/><br/> <div class="row"> <p><h3>Hello : {{ Auth::user()->name }} </h3> </p> </div> </div> @yield('content') </body> </html>Run C:\xampp\htdocs\laravel\laravelproject>php artisan serve
Starting Laravel development server: http://127.0.0.1:8000