You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中$req->param与$req->input('param')的区别及优劣对比

Laravel中$req->input('param')与$req->param的区别及选型建议

核心区别

虽然两者在获取普通顶层请求参数时结果一致,但存在以下关键差异:

  • 默认值支持:$req->input('param', '默认值')可直接为不存在的参数设置默认值;而$req->param在参数不存在时返回null,若要设置默认值需额外使用??语法,比如$req->param ?? '默认值'。
  • 嵌套参数处理:input()支持点语法直接获取嵌套数组参数,例如请求中存在user[name]时,可通过$req->input('user.name')直接拿到用户名;而属性访问需先获取数组再取值,即$req->user['name'],直接写$req->user.name会触发字符串拼接错误。
  • 底层实现逻辑:$req->param是通过Laravel Request类的魔术方法__get实现的,底层最终还是调用了input()方法;但属性访问无法直接传递默认值参数,这是两者最直观的功能差异。

选型建议

  • 若只需获取简单的顶层参数且不需要默认值,$req->param写法更简洁,代码可读性更高。
  • 若需要设置默认值、处理嵌套参数,或者希望明确表达“获取请求参数”的意图,使用$req->input('param')更合适。
  • 团队开发时建议统一规范,避免混合使用导致代码风格不一致。

内容的提问来源于stack exchange,提问作者Tio Ajc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 16:14:59