Laravel reindirizza nuovamente con () il messaggio

Cercando di redirect alla pagina precedente con un messaggio quando si verifica un errore irreversibile.

App::fatal(function($exception) { return Redirect::back()->with('msg', 'The Message'); } 

Nella vista cercando di accedere al messaggio con

 Sessions::get('msg') 

Ma niente viene reso, sto facendo qualcosa di sbagliato qui?

Provare

 return Redirect::back()->withErrors(['msg', 'The Message']); 

e dentro la tua vista chiama questo

 @if($errors->any()) 

{{$errors->first()}}

@endif

Laravel 5

controllore

  return redirect()->back()->with('success', ['your message,here']); 

Lama:

 @if (\Session::has('success')) 
  • {!! \Session::get('success') !!}
@endif

L’approccio alternativo sarebbe

controllore

 Session::flash('message', "Special message goes here"); return Redirect::back(); 

vista

 @if (Session::has('message')) 
{{ Session::get('message') }}
@endif

In Laravel 5.4 ho lavorato per me:

 return back()->withErrors(['field_name' => ['Your custom message here.']]); 

Hai un errore (errore di ortografia):

 Sessions::get('msg')// an extra 's' on end 

Dovrebbe essere:

 Session::get('msg') 

Penso, ora dovrebbe funzionare, lo fa per me.

Basta impostare il messaggio flash e redirect per tornare dalla funzione controller.

  session()->flash('msg', 'Successfully done the operation.'); return redirect()->back(); 

E poi puoi ottenere il messaggio nel file view blade.

  {!! Session::has('msg') ? Session::get("msg") : '' !!} 

Ho smesso di scriverlo io stesso per laravel in favore del pacchetto Laracasts che gestisce tutto ciò che fa per te. È veramente facile da usare e mantiene pulito il tuo codice. C’è persino un laracast che spiega come usarlo. Tutto ciò che devi fare:

Inserisci il pacchetto tramite Composer.

 "require": { "laracasts/flash": "~1.0" } 

Includere il fornitore di servizi all’interno di app / config / app.php.

 'providers' => [ 'Laracasts\Flash\FlashServiceProvider' ]; 

Aggiungi un alias di facciata a questo stesso file in fondo:

 'aliases' => [ 'Flash' => 'Laracasts\Flash\Flash' ]; 

Inserisci l’HTML nella vista:

 @include('flash::message') 

C’è un pulsante di chiusura a destra del messaggio. Questo dipende da jQuery, quindi assicurati che venga aggiunto prima del tuo bootstrap.

modifiche facoltative:

Se non stai usando bootstrap o vuoi saltare l’inclusione del messaggio flash e scrivere il codice da solo:

 @if (Session::has('flash_notification.message')) 
{{ Session::get('flash_notification.message') }}
@endif

Se si desidera visualizzare l’HTML @include('flash::message') da @include('flash::message') , è ansible trovarlo in vendor/laracasts/flash/src/views/message.blade.php .

Se hai bisogno di modificare i parziali fai:

 php artisan view:publish laracasts/flash 

Le due viste del pacchetto ora si troveranno nella directory `app / views / packages / laracasts / flash / ‘.

In Laravel 5.5 :

 return back()->withErrors($arrayWithErrors); 

Nella vista usando Blade:

 @if($errors->has()) 
    @foreach ($errors->all() as $error)
  • {{ $error }}
  • @endforeach
@endif

Ho affrontato lo stesso problema e questo ha funzionato.

controllore

 return Redirect::back()->withInput()->withErrors(array('user_name' => $message)); 

vista

 
{{{ $errors->first('user_name') }}}

Per Laravel 3

Solo un avviso su @giannis christofakis risposta; per chi usa Laravel 3 sostituirlo

 return Redirect::back()->withErrors(['msg', 'The Message']); 

con:

 return Redirect::back()->with_errors(['msg', 'The Message']); 

Ho ricevuto questo messaggio quando ho provato a redirect come:

 public function validateLogin(LoginRequest $request){ // return redirect()->route('sesion.iniciar') ->withErrors($request) ->withInput(); 

Quando la strada giusta è:

 public function validateLogin(LoginRequest $request){ // return redirect()->route('sesion.iniciar') ->withErrors($request->messages()) ->withInput(); 

Laravel 5.6. *

controllore

 if(true) { $msg = [ 'message' => 'Some Message!', ]; return redirect()->route('home')->with($msg); } else { $msg = [ 'error' => 'Some error!', ]; return redirect()->route('welcome')->with($msg); } 

Modello di lama

  @if (Session::has('message'))  @elseif (Session::has('error'))  @endif 

Enyoj