2016-07-07 8 views
2

Das passiert, wenn ich eine einfache Route (foo) hinzufüge. Der Rest der Routen funktioniert wie erwartet. Dies generiert eine NotFoundHttpException und eine ModelNotFoundException.Laravel 5.2 NotFoundHttpException in Handler.php Zeile 103

app/Http/routes.php:

Route::auth(); 

Route::get('/home', '[email protected]'); 

Route::get('/index','[email protected]'); 
Route::get('/create','[email protected]'); 
Route::get('/{workorder}','[email protected]'); 
Route::post('/create','[email protected]'); 

Route::get('/', function() { 
    return view('welcome'); 
}); 

Route::get('/foo', function() { 
    return view('foo'); 
}); 

app/Ressourcen/views/foo.blade.php:

<p>foo</p> 
+1

Versuchen Sie, die Reihenfolge der WosController @ show-Deklaration zu ändern. Fügen Sie es als letzte Route in die Datei ein. – Laerte

+0

Das hat funktioniert, danke! aber warum hat es funktioniert? – Dougie

+0

In Laravel 5.3 ist es in Zeile 113 von Handler.php Datei ... – Pathros

Antwort

10

Wenn Sie Ihre Routen-Datei erklärt, versuchen WosController @ Show erklären als letzte Route. Wie folgt aus:

Route::auth(); 

Route::get('/home', '[email protected]'); 

Route::get('/index','[email protected]'); 
Route::get('/create','[email protected]'); 
Route::post('/create','[email protected]'); 

Route::get('/', function() { 
    return view('welcome'); 
}); 

Route::get('/foo', function() { 
    return view('foo'); 
}); 

Route::get('/{workorder}','[email protected]'); 

Laravel wurde problably einen Fehler mit Ihrer Show Weg machen, weil sie denkt, dass /foo ist ein Argument von {workorder}, da es keine Möglichkeit, sie zu unterscheiden hat. Wenn Sie also Routen deklarieren, versuchen Sie, feste Routen zuerst zu setzen und am Ende mit Argumenten zu routen.

Hoffe es hilft dir !!

+1

natürlich macht das vollkommen Sinn. Danke nochmal Laerte. – Dougie

+0

Gern geschehen! Ich bin froh, dass ich dir helfen konnte! – Laerte