2016-06-24 6 views
0

das ist mein PostController.php,Mein Alarm zeigt, ist nicht in Laravel 5

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Depress; 
use App\Http\Requests; 

class PostController extends Controller 
{ 
    public function createPost(Request $request) 
    { 

     $depress = new Depress(); 
     $depress->depression = $request['depression']; 
     if($request['name']) 
      $depress->name = $request['name']; 
     else 
      $depress->name = "Depressed Anonymous"; 
     $depress->save(); 
     \Session::flash('info','Success'); 
     return redirect()->route('home'); 

    } 
} 

und das ist mein alert.blade.php,

@if(Session::has('info')) 
    <div class="alert alert-success alert-dismissible" role="alert"> 
     <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
     {{ Session::get('info') }} 
    </div> 
    <br> 
@endif 

Und ich habe es aufgenommen in meinem layout.blade.php

aber keine Warnung auftaucht ...

dank im Voraus

+0

Der Code sieht aus wie es funktionieren sollte. Vielleicht müssen Sie prüfen, wo Sie alert.blade.php enthalten und überprüfen Sie die HTML-Quelle, um zu sehen, ob der HTML-Code platziert wird. – Devon

Antwort

0

Kein Sitzungsblitz erforderlich. Verwenden Sie die Laravel Weise

In Ihrem Controller

return Redirect::to('home')->with('success', 'You message here.'); 

Ihrer Ansicht

@if (isset($success)) 
<div class="alert alert-success alert-dismissible" role="alert"> 
     <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
      {!! $success !!}. 
</div> 
@endif 
+0

Die Weiterleitung mit verwendet Sitzung flash.https: //laravel.com/docs/5.1/responses#redirec- tion-with-flashed-session-data. Sie vermischen view() und redirect() ich glaube. – Devon

0

Ändern Sie diese Zeile:

\Session::flash('info','Success'); return redirect()->route('home');

An:

return redirect()->route('home')->with(['info' => 'Success']);

Im Grunde ist dies werden Sie zu Hause umleiten. Sie müssen also sicherstellen, dass in der Aktion (Funktion), die die Route verarbeitet home, es zu der Ansicht alert.balde.php oder zu einer Ansicht zurückkehrt, die alert.balde.php verwendet. Ich habe es versucht und es hat für mich funktioniert. Hier ist mein Code unten:

in meinem Controller:

public function home() 
{ 
    return view('welcome'); 
} 

public function test() 
{ 
    return redirect()->route('home')->with(['info' => 'Success']); 
} 

Und in meinem welcome.blade.php:

@if(Session::has('info')) 
    <div class="alert alert-success alert-dismissible" role="alert"> 
     <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
     {{ Session::get('info') }} 
    </div> 
@endif 

Und ich bekomme 'Erfolg' in der Ansicht zu sehen.

Hoffe, das hilft.

0

Verwenden Sie compact() bei der Rückkehr und übergeben Sie diese Variable in ihm. Und Sie können es als normale PHP-Variable in Sicht zugreifen.