2016-08-30 3 views
3

Ich bin verrückt nach einer Lösung für diese Suche. Ich muss eine sehr einfache Sache tun - Variablen an die benutzerdefinierte 404 Seite Layout übergeben. Mit Laravel können Sie auf einfache Weise eine benutzerdefinierte Ansicht für Ihre http-Fehler erstellen, indem Sie eine Datei wie /resources/views/errors/404.blade.php erstellen, aber warum lassen Sie Variablen nicht einfach an sie weiterleiten?Wie übergibt man Variablen an HTTP-Fehler-Layouts in Laravel?

Ich versuchte app/Exceptions/Handler.php machen Methode zu überschreiben:

public function render($request, Exception $e) 
    { 
     if($this->isHttpException($e)){ 
      switch ($e->getStatusCode()) { 
       case '404': 
         parent::render($request, $e)->flash(); 
         $categories = Category::hierarchy(); 
         return View::make('errors.404')->with(['categories' => $categories]); 
       break; 

       default: 
        return $this->renderHttpException($e); 
       break; 
      } 
     } 
     return parent::render($request, $e); 
    } 

Aber aus welchem ​​Grund dies nicht funktioniert und ich kann nicht die Kategorien Variable in meinem Master-Layout zugreifen. Ich arbeite an einer Website, die Header auf Fehlerseiten anzeigt, aber wenn ich Variablen nicht an die Fehleransicht übergeben kann, kann meine Kopfzeile nicht erstellt werden.

Undefined variable: Kategorien

Jeder hat eine Vorstellung davon, was schief gehen könnte? Ist es einfach unmöglich das zu tun? Ich habe gelesen, dass Sie die Ausnahme passieren können und eine Nachricht von ihm erhalten, aber was ist der Sinn davon? Ich möchte nicht das gesamte Layout duplizieren und alle Variablen neu schreiben müssen.

Antwort

0

public function boot() 
{ 
    view()->composer('my.view', function($view) 
    { 
    $view->with('myVariable', 'whatever you want'); 
    }); 
} 

zum Diese AppServiceProvider.php

hinzufügen whatever you want als $myVariable zum view.blade.php in my Ordner übergeben werden. Es könnte Tippfehler geben.

Weitere Informationen: https://laracasts.com/series/laravel-5-fundamentals/episodes/25 (Code um 9:32)

Verwandte Themen