2017-02-05 2 views
0

Diese Route :: bind() wirft eine NotFoundHttpException werfen, wenn die Ressource nicht existiert,Strecke :: bind NotFoundHttpException auf nicht vorhandene Ressource

Route::bind('layout', function($value, $route) { 
    return App\Layout::where('id', $value)->first(); 
}); 

Der vollständige Routing für das Layout Ressource wird wie folgt,

Route::model('layout', 'Layout'); 

Route::bind('layout', function($value, $route) { 
    return App\Layout::where('id', $value)->first(); 
}); 

Route::resource('layout', 'LayoutController'); 

Ich habe mehrere Ressourcen mit genau der gleichen Routing-Konfiguration, die diese Ausnahme nicht werfen, wenn die Ressource nicht existiert. Warum würde dies mit nur einer Routenkonfiguration geschehen, die mit vielen anderen identisch ist? Ich handle mit der Ressource, die in dem Controller nicht für alle diese anderen Ressourcen vorhanden ist.

Hier ist der vollständige Fehler,

NotFoundHttpException in Handler.php line 113: 
No query results for model [App\Layout]. 

Antwort

0
  1. Versuchen Route::model('layout', App\Layout::class);
  2. Sie brauchen nicht beide Route::model und Route::bind zu verwenden, wählen Sie die am besten Ihren Bedürfnissen passt und ich denke, Route::model funktioniert nur gut für Ihren Fall
  3. Registrieren Sie Ihre Route Modelle und/oder Route Bindings in Ihrer RouteServiceProvider Klasse, nicht Ihre routes.php Datei
+0

Vielen Dank für Ihre Hilfe. Ich bekomme jedoch den gleichen Fehler. Der vollständige Fehler ist NotFoundHttpException in Handler.php Zeile 113: Keine Abfrageergebnisse für Modell [App \ Layout] –

+0

Versuchen Sie, das Route :: -Modell zu löschen, und Route :: bind statt – Paras

+0

Route :: model() zu verwenden und alle Route verschoben :: bind() ruft von web.php nach app \ Providers \ RouteServiceProvider :: boot() auf Immer noch der sehr seltsame Doppelstandard von nur dieser Ressource, der diese Ausnahme auslöst, wenn andere eine leere Ressource an meine Controller weitergeben ... –