【问题标题】:Laravel 5.2 throws NotFoundHttpException in Handler.php line 103Laravel 5.2 在 Handler.php 第 103 行抛出 NotFoundHttpException
【发布时间】:2016-11-10 03:50:02
【问题描述】:

当我添加基本路线 (foo) 时会发生这种情况。其余路线按预期工作。这会生成 NotFoundHttpException 和 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>

【问题讨论】:

  • 尝试改变 WosController@show 声明的顺序。将其作为文件中的最后一条路由。
  • 成功了,谢谢!但为什么它起作用了?
  • 在 Laravel 5.3 中它位于 Handler.php 文件的第 113 行 ...

标签: php laravel laravel-5


【解决方案1】:

在声明你的路由文件时,尝试将WosController@show 声明为最后一个路由。像这样:

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 可能在你的展示路线上犯了一个错误,因为它认为 /foo{workorder} 的一个参数,因为它无法区分它们。所以,在声明路由的时候,尽量把固定路由放在最前面,带参数的路由放在最后。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-01
    • 1970-01-01
    • 2016-06-17
    • 1970-01-01
    • 2016-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多