2016-07-07 2 views
2

Это происходит, когда я добавляю базовый маршрут (foo). Остальные маршруты работают так, как ожидалось. Это генерирует исключение NotFoundHttpException и исключение ModelNotFoundException.Laravel 5.2 NotFoundHttpException в Handler.php line 103

приложение/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'); 
}); 

приложение/ресурсы/просмотров/foo.blade.php:

<p>foo</p> 
+1

Попробуйте изменить порядок объявления WosController @ show. Поместите его как последний маршрут в файл. – Laerte

+0

Это сработало спасибо! но почему это сработало? – Dougie

+0

В Laravel 5.3 он находится в строке 113 файла Handler.php ... – Pathros

ответ

10

При объявлении файла маршрутов, пытаются объявить WosController @ шоу как последний маршрут. Как это:

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 был problably сделать ошибку с вашим шоу маршрут, потому что он считает, что /foo является аргументом {workorder}, поскольку он не имеет возможности отличить их. Таким образом, при объявлении маршрутов сначала пытайтесь сначала перенести фиксированные маршруты и маршруты с аргументами.

Надеюсь, это поможет вам!

+1

, конечно, имеет смысл. Еще раз спасибо Лаэрте. – Dougie

+0

Добро пожаловать! Я рад, что смог помочь вам! – Laerte