In this tutorial, we will learn Laravel 7 Flash Message Example

Flash messages are required in the laravel 7 application. 

In this section, we added several ways to give a flash message like redirect with a success message, redirect with an error message, redirect with a warning message, and redirect with info message. 

In this example, we use a bootstrap flash alert layout that way it becomes a good layout.


Step 1: 

Create Global File For Flash Message 

There are following alert will added:

  1. success
  2. error
  3. warning
  4. info
  5. validation error

resources/views/flash-message.blade.php

@if ($message = Session::get('success'))
<div class="alert alert-success alert-block">
    <button type="button" class="close" data-dismiss="alert">×</button>    
    <strong>{{ $message }}</strong>
</div>
@endif
  
@if ($message = Session::get('error'))
<div class="alert alert-danger alert-block">
    <button type="button" class="close" data-dismiss="alert">×</button>    
    <strong>{{ $message }}</strong>
</div>
@endif
   
@if ($message = Session::get('warning'))
<div class="alert alert-warning alert-block">
    <button type="button" class="close" data-dismiss="alert">×</button>    
    <strong>{{ $message }}</strong>
</div>
@endif
   
@if ($message = Session::get('info'))
<div class="alert alert-info alert-block">
    <button type="button" class="close" data-dismiss="alert">×</button>    
    <strong>{{ $message }}</strong>
</div>
@endif
  
@if ($errors->any())
<div class="alert alert-danger">
    <button type="button" class="close" data-dismiss="alert">×</button>    
    Please check the form below for errors
</div>
@endif



Step 2: 

Use Flash Message in Theme 

@include('flash-message')

resources/views/layouts/app.blade.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- Styles -->
    <link href="/css/app.css" rel="stylesheet">
</head>
<body>


    <div id="app">
        @include('flash-message')


        @yield('content')
    </div>


    <!-- Scripts -->
    <script src="/js/app.js"></script>
</body>
</html>

Step 3: 

Use Flash Messages with Redirect 


1. Redirect with success message

public function create(Request $request)
{
	$this->validate($request,[
        'title' => 'required',
        'details' => 'required'
        ]);


	$items = Item::create($request->all());


	return back()->with('success','Item created successfully!');
}

2. Redirect with error message

public function create(Request $request)
{
    return redirect()->route('home')
        ->with('error','You have no permission for this page!');
}

3. Redirect with warning message

public function create(Request $request)
{
    return redirect()->route('home')
            ->with('warning',"Don't Open this link");
}

4. Redirect with info message

public function create(Request $request)
{
    $this->validate($request,[
        'title' => 'required',
        'details' => 'required'
        ]);


    $items = Item::create($request->all());


    return back()->with('info','You added new items, follow next step!');
}

5. Validation Error

public function create(Request $request)
{
    $this->validate($request,[
        'title' => 'required',
        'details' => 'required'
        ]);


    .....
}

May this example help you.