下面由laravel教程栏目给大家介绍laravel同时接收路由参数和查询字符串中的参数,希望对需要的朋友有所帮助!
Laravel捕捉路由参数
Laravel允许在controller方法中捕捉路由里定义的参数,如下所示:
路由中定义参数:Route::get('post/{id}', 'PostController@content');
控制器方法里捕捉路由参数:
class PostController extends Controller{ public function content($id) { // }}
Laravel同时捕获路由参数和查询字符串参数
那在控制器里怎么既能捕捉到路由里定义的参数又能接收到url查询字符串里的参数呢,比如请求链接是这样的http://example.com.cn/post/1?from=index
引用官网文档的解释
Dependency Injection & Route ParametersIf your controller method is also expecting input from a route parameter you should list your route parameters after your other dependencies.
就是说如果想要在控制器方法注入依赖时仍然能使用路由里的参数,你需要把路由里的参数列举在方法依赖的后面,比如:
get('from') }}
Laravel捕获多个可选参数
此外laravel路由中我们还可以定义多个可选参数:
Poixe AI
统一的 LLM API 服务平台,访问各种免费大模型
75 查看详情
Route::get('/article/{id}/{source?}/{medium?}/{campaign?}', 'ArticleController@detail')
在控制器方法中可选参数需要定义成默认参数:
public function detail(Request $request, $id, $source = '', $mediun = '', $campaign = '') { // }
这样定义完后路由里URL里可以传递0~3个可选参数,但是必须按照顺序:即想传第二个可选参数那么第一个可选参数必须有。
URL示例:http://example.com.cn/article/1/wx/h5?param1=val1¶m2=val2
在这个例子中"wx"会传递给变量$source, "h5"会传递给变量$medium
推荐:最新的五个Laravel视频教程
以上就是Laravel怎么同时接收路由参数和查询字符串中的参数的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/730621.html
微信扫一扫
支付宝扫一扫