如图,刚上手接触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');
本文介绍了一种在Laravel框架中解决路由冲突的方法,通过调整路由定义顺序或使用正则表达式来避免由动态参数引起的路由匹配错误。

1万+

被折叠的 条评论
为什么被折叠?



