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.

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

<?php
namespace 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同时接收路由参数和查询字符串中的参数相关推荐

  1. 字符串url获取参数_如何从URL查询字符串获取示例参数或将其附加到URL查询字符串(示例)?...

    字符串url获取参数 让我们剖析几个简单的用例,并查看视图参数的工作原理(视图参数名称不是强制性的,以匹配通过URL查询字符串传递的请求参数,但在本文中,我们将重点讨论这种情况): 情况1 在inde ...

  2. 查询字符串中字母出现的个数

    /*查询字符串中字母出现的个数*/             string str = " Welcom Hello World";             Dictionary&l ...

  3. 查询字符串中不含重复的最长子串

    /*** 查询字符串中不含重复的最长子串* 思路:* 1.从大到小获取字符串子串.* 2.遍历每个子串中是否有重复.* 3.查询到符合子串即可返回.*/ public class Demo2_16_0 ...

  4. 面试题:查询字符串中出现次数最多的字符以及出现次数

    查询字符串中出现次数最多的字符以及出现次数 最优解: // 查询字符串出现最多的次数var randomStr = "sssfgtdaddddddddadadadadadddddfssddf ...

  5. 查询字符串中连续出现的字符

    根据用户需求需要查询字符串中连续出现的字符 如'mn,asdfs,opq,dfasf,abc,asdlfj,defg' 'DF,RST',要求找出两个字符串中连续出现的字符 这里两个字符串数据相当于表 ...

  6. 寻找热门查询,300万个查询字符串中统计最热门的10个查询

    寻找热门查询,300万个查询字符串中统计最热门的10个查询 #include #include #include struct QueryInfo{ string s; int times; Quer ...

  7. matlab 将图形另存时,在文件名字符串中添加参数,总是保存出错,无效文件名

    将图形另存时,在文件名字符串中添加参数,总是保存出错,解决方式如下: 注意:我尝试过 string(1) char(1) 等都不可以,提示无效文件名. filename = ['Point cloud ...

  8. 获取SQL命令字符串中的参数名列表

    1//清除命令字符串中的所有字符串 2string commandTextNoString = Regex.Replace(command.CommandText, @"['][\S]*[' ...

  9. ajax 参数data问题 data中的 参数名 参数值为string 提交到后台后,会自动转换参数名相同的 类型 和 js字符串拼接...

    latlng "14.6005238,100.43635419999998" Cusid "accb5c1b-6aef-4f3b-a4eb-d60ea1ca5f54&qu ...

最新文章

  1. php tp3 操作绑定到类,快速入门 17:操作绑定到类
  2. java保留两位小数
  3. Git常用命令总结(超实用)
  4. 相当于零负担的延时程序(转)
  5. log4j2 mybatis 显示 sql 和 结果集
  6. centos下编译安装curl拓展
  7. 20200216_re数据处理
  8. 统计每小时数据的处理
  9. 开源中国 OsChina Android 客户端源码分析(12)清理缓存
  10. 1.Kettle下载与安装
  11. 串口通信工具android,串口调试工具手机版
  12. file_contexts 踩坑
  13. 什么是大数据与智能数据?什么是惯性测量单元与GNSS?
  14. 前端几种本地缓存机制
  15. [0CTF 2016]piapiapia 1
  16. maven集成docker插件进行打包镜像并推送私服
  17. 20145212 罗天晨 信息搜集与漏洞扫描
  18. 司铭宇老师:新任销售经理新任销售主管培训之角色认知
  19. 给拯救者Y7000换个固态
  20. 企鹅号如何度过新手期,视频运营注意要点,需要几天度过

热门文章

  1. 当快递员也学会了“跑路”,消费者如何捍卫自己的权益?
  2. NVMe闪存存储系统设计挑战
  3. Mysql 获取年级每个班前十学生的信息
  4. Velocity 模板引擎介绍
  5. tomcat安装成功页面翻译
  6. 【uTenux实验】写在开始实验之前
  7. REDO LOG大小引起的Oracle数据库性能下降
  8. [Python教程] 一只乌龟其实也很酷 (1、动起来)
  9. IO is frozen on database xxx, No user action is required
  10. Became Jane(成为简.奥斯丁)