در این آموزش قصد دارم استفاده از Flash Message در Laravel 8 را بصورت مختصر و مفید خدمت شما آموزش بدم. برای نمایش Flash Message حالت های مختلفی وجود دارند و خوشبختانه برای تک تک این حالت ها کلاس های CSS از قبل در Bootstrap پیشبینی شده است.

برای استفاده از Flash Message در Laravel 8 ، باید فقط سه مرحله اساسی را بصورت زیر دنبال کنید:

مرحله اول: ایجاد یک فایل اصلی برای تولید Flash Message

در مرحله اول فایل blade جدید flash-message.blade.php را ایجاد میکنیم. حالت های مختلف هدار در این فایل Flash Message به شرح زیر است:

success
error
warning
info
validation error

فایل flash-message.blade.php را بصورت زیر در پرونده خود قرار دهید:

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

مرحله دوم: استفاده از Flash Message در قالب

برای لود شدن فایل flash-message.blade.php در هر جای قالب خود از کد زیر استفاده نمایید:

@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>

مرحله سوم: استفاده از Flash Message با Redirect

در این مرحله یاد می گیریم که چگونه یک Flash Message را در حالت های مختلف هنگام Redirect در Controller مورد نظر خود استفاده کنیم:

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!');
}
Redirect with error message
public function create(Request $request)
{
    return redirect()->route('home')
        ->with('error','You have no permission for this page!');
}
Redirect with warning message
public function create(Request $request)
{
    return redirect()->route('home')
            ->with('warning',"Don't Open this link");
}
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!');
}
Validation Error
public function create(Request $request)
{
    $this->validate($request,[
        'title' => 'required',
        'details' => 'required'
        ]);


    .....
}

امیدوارم این آموزش برای شما مفید واقع شده باشه و بتوانید بدون مشکل از اون استفاده کنید.

علاقه ام از سالها قبل برنامه نویسی تحت وب بوده و هست ، همیشه سعی می کنم علاقه مندی های خودم رو در ضمیه برنامه نویسی با همه به اشتراک بذارم، مطالب اینجا بتونه مشکل یه نفر رو هم برطرف کنه اون حس خوب رضایت رو در من بوجود میاره ;)

ارسال نظر