Laravel 路由顺序为什么会影响返回内容?
刚学习laravel框架,发现路由的顺序会影响发挥的内容,这是为什么呢?
正常代码:
Route::get('posts',function (){
return 'index';
});
Route::get('posts/create',function (){
return 'create';
});
Route::get('posts/{post}',function (){
return 'post';
});
异常代码:
Route::get('posts',function (){
return 'index';
});
Route::get('posts/{post}',function (){
return 'post';
});
Route::get('posts/create',function (){
return 'create';
});
两段代码内容没有什么区别,就是路由顺序有所不同。在访问post/create
路由时,异常代码会返回posts/{post}
的内容。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先路由会在路由文件里进行匹配, 如果匹配成功就会立即返回,不再往下执行。
posts/create
满足posts/{post}
的匹配规则,所以posts/{post}
放到前面,posts/create
会被命中。