2017-03-22 4 views
4

Methode von meinem PostcontrollerLaravel 5.4 anzeigen Flash-Fehler und Erfolgsmeldungen auf unterschiedliche Weise

public function store(PostRequest $request) 
    { 
     if (Post::create($request->all())) { 
      $request->session()->flash('status', 'Post was successfully added!'); 
     } else { 
      $request->session()->flash('status', 'Error!'); 
     } 
     return redirect('/'); 
    } 

Indexansicht

<?php if(session()->has('status')){ 
     echo '<div style="text-align: center">'; 
     echo session()->get('status'); 
     echo '</div>'; 
    }?> 

Wie Fehler und Erfolgsmeldungen auf unterschiedliche Weise zeigen?

Antwort

10

Sie so etwas wie dieses verwenden:

public function store(PostRequest $request) { 
    if (Post::create($request->all())) { 
     $request->session()->flash('message.level', 'success'); 
     $request->session()->flash('message.content', 'Post was successfully added!'); 
    } else { 
     $request->session()->flash('message.level', 'danger'); 
     $request->session()->flash('message.content', 'Error!'); 
    } 
    return redirect('/'); 
} 

In Blade-Datei:

@if(session()->has('message.level')) 
    <div class="alert alert-{{ session('message.level') }}"> 
    {!! session('message.content') !!} 
    </div> 
@endif 

Der obige Code bootstrap's alert css classes für Styling verwendet und von Jeffrey Way's Laracasts Flash package

3

inspiriert Sie Flash anzeigen können Nachrichten auf diese Weise:

In Ihrem Controller:

$request->session()->flash('success', 'Record successfully added!'); 
//OR 
$request->session()->flash('warning', 'Record not added!'); 

in Ihrem veiw:

@foreach (['danger', 'warning', 'success', 'info'] as $key) 
@if(Session::has($key)) 
    <p class="alert alert-{{ $key }}">{{ Session::get($key) }}</p> 
@endif 
@endforeach