Handler.php第103行中的Laravel 5.2 NotFoundHttpException

问题描述:

This happens when I add a basic route (foo). The rest of the routes work as expected. This generates a NotFoundHttpException and a ModelNotFoundException.

app/Http/routes.php:

Route::auth();

Route::get('/home', 'HomeController@index');

Route::get('/index','WosController@index');
Route::get('/create','WosController@create');
Route::get('/{workorder}','WosController@show');
Route::post('/create','WosController@store');

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

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

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

<p>foo</p>

当我添加基本路线(foo)时会发生这种情况。 其余路线按预期工作。 这会生成NotFoundHttpException和ModelNotFoundException。 p>

app / Http / routes.php: p>

  Route :: auth(); 
  
Route :: get('/ home','HomeController @ index'); 
 
Route :: get('/ index','WosController @ index'); 
Route :: get('/ create','  WosController @创建 '); 
Route ::得到('/ {}工作单”, 'WosController @秀'); 
Route ::后( '/创建', 'WosController @店'); 
 
Route ::  get('/',function(){
返回视图('welcome'); 
}); 
 
Route :: get('/ foo',function(){
返回视图('foo')  ); \ N}); 
 代码>  PRE> 
 
 

应用程序/资源/视图/ foo.blade.php: p>

   &lt; p&gt; foo&lt; / p&gt; 
  code>  pre> 
  div>

When declaring your routes file, try to declare WosController@show as the last route. Like this:

Route::auth();

Route::get('/home', 'HomeController@index');

Route::get('/index','WosController@index');
Route::get('/create','WosController@create');
Route::post('/create','WosController@store');

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

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

Route::get('/{workorder}','WosController@show');

Laravel was problably making a mistake with your show route because it thinks that /foois an argument of {workorder}since it has no way to differ them. So, when declaring routes, try to put fixed routes first and routes with arguments in the end.

Hope it helps you!!