2016-03-28 18 views
2

Wenn Benutzer der Website besucht/Seite, ich möchte ihn umleiten, um mit Nachricht indexieren. Wie kann ich auf die Umleitungsnachricht in der Ansicht zugreifen? Meine Routen:Laravel 5.2 Redirect mit Nachricht

Route::group(['middleware' => 'web'],function(){ 
    Route::get('/page', function() { 
     return redirect('/')->withMessage(["warning"=> ["yeah","test"]]); // According official docs, this should work. 
    }); 
    Route::get('/', '[email protected]'); 
}); 

Meine Seite Controller:

<?php 

namespace App\Http\Controllers; 
use Illuminate\Http\Request; 
use App\Http\Requests; 
use App\News; 
use App\PageContact; 
use Session; 

class Page extends Controller{ 
    public function front(Request $Request){ 
     return view('index')->withNews("news"); 
} 

wichtig: ja, meine Seiten bereits in Web-Middleware gewickelt. Und bitte vermeiden Sie Laravel 3 oder Laravel 4 Lösungen.

Antwort

5

Es sollte sein:

->with('warning', 'testing') 

Dann in der Ansicht:

@if(session()->has('warning')) 
    {!! session()->get('warning') !!} 
@endif 
+0

Sie haben Recht mit Ausnahme der Sache - $ Warnung wird nicht so deklariert, also nicht in den Ansichten zugegriffen werden kann. Stattdessen können Sie die Variable stattdessen mit session() -> get ('warning') abrufen. – Fusion

+0

Ja, natürlich. Danke, dass du es aufgezeigt hast. – user2094178

0

Die Antwort von user2094178 ist richtig, aber Sie haben nicht

->with('warning', 'testing') 

es zu benutzen kann auch sein (wie Sie):

->withNews("news"); 
->withWarning('testing'); 

Da die View-Klasse wird mit der magischen Funktion „__call“:

 /** 
    * Dynamically bind parameters to the view. 
    * 
    * @param string $method 
    * @param array $parameters 
    * @return \Illuminate\View\View 
    * 
    * @throws \BadMethodCallException 
    */ 
    public function __call($method, $parameters) 
    { 
     if (Str::startsWith($method, 'with')) { 
      return $this->with(Str::snake(substr($method, 4)), $parameters[0]); 
     } 

     throw new BadMethodCallException("Method [$method] does not exist on view."); 
    }