Laravel学习之NotFoundHttpException - 小众知识

Laravel学习之NotFoundHttpException

2020-08-16 03:18:08 苏内容
  标签: Laravel
阅读:4171

No query results for model [App\Products] Laravel

这个通常由路由绑定出的问题,注意有绑定模型的路由,同路径的路由需要放在没绑定路由的后面

例如:/posts/create 和/posts/{post}的是同路径,/posts/{post}必须放在/posts/create 后面

图,刚上手接触laravel,出的问题毫无头绪,就放到一边了!

幸好在这里查到了解决方案 http://coding.imooc.com/learn/questiondetail/26102.html 

方案解读:

路由访问检测是从上到下,当检测到{}时后面的会替换成含有{}

由于在create 之前有{} 所以 laravel 会把create 换成{create}

解决方法 

把含有{}放后面,要么加个路由正则,限制只接收数字参数


这是转字别人,谢谢你。

Route::group(['prefix' => 'posts'],function(){    //文章列表    Route::get('/','PostController@index');    //创建文章    Route::get('/create','PostController@create');
    Route::post('/posts','PostController@store');    //编辑文章    Route::get('/{post}/edit','PostController@edit');
    Route::put('/{post}','PostController@update');    //删除文章    Route::get('/delete','PostController@delete');    //文章詳情    Route::get('/{post}','PostController@show');
    
});

运行完后才发现是自己把顺序搞反了 调整一下位置 原来的也是可以用的,zz了

//文章列表Route::get('/posts','\App\Http\Controllers\PostController@index');//创建文章Route::get('/posts/create','\App\Http\Controllers\PostController@create');
Route::post('/posts','\App\Http\Controllers\PostController@store');//文章詳情Route::get('/posts/{post}','\App\Http\Controllers\PostController@show');//编辑文章Route::get('/posts/{post}/edit','\App\Http\Controllers\PostController@edit');
Route::put('/posts/{post}','\App\Http\Controllers\PostController@update');//删除文章Route::get('/posts/delete','\App\Http\Controllers\PostController@delete');


报错:NotFoundHttpException

这种一般都是路由配置错误


扩展阅读
相关阅读
© CopyRight 2010-2021, PREDREAM.ORG, Inc.All Rights Reserved. 京ICP备13045924号-1