Laravel怎么同时接收路由参数和查询字符串中的参数

2022-05-15 0 670

下面由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 Parameters

If your controller method is also expecting input from a route parameter you should list your route parameters after your other dependencies.

就是说如果想要在控制器方法注入依赖时仍然能使用路由里的参数,你需要把路由里的参数列举在方法依赖的后面,比如:

<?phpnamespace App\\Http\\Controllers;use Illuminate\\Http\\Request;class PostController extends Controller{    public function content(Request $request, $id)    {        $from = $request->get('from')    }}

Laravel捕获多个可选参数

此外laravel路由中我们还可以定义多个可选参数:

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&param2=val2
在这个例子中"wx"会传递给变量$source, "h5"会传递给变量$medium

推荐:最新的五个Laravel视频教程

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

【声明:根据2013年1月30日《计算机软件保护条例》2次修订第17条规定: 为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存 储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬! 鉴于此,也希望大家按此说明研究软件!】
本站所有源码尽量保证原汁原味,如有特殊情况会作出声明及标注,网站资源不做任何二次加密(原版加密除外,不影响程序使用的不会做解密处理),方便您更好的学习参考。 在您的能力范围内,为了大环境的良性发展,请尽可能的选择正版资源。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

即刻码站__国内靠谱的站长资源下载平台 php教程 Laravel怎么同时接收路由参数和查询字符串中的参数 https://www.jike1995.com/35871.html

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务