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

Laravel控制器中如何正确使用自定义变量访问Request请求参数

问题原因

抛出*syntax error, unexpected '$i' (T_VARIABLE), expecting ')'*错误是PHP原生语法限制导致的:PHP无法直接解析$request->input_name_$i这种把变量直接拼接在对象属性名后的写法,解析器会把input_name_识别为完整属性名,碰到后面的$i就会触发语法报错。

正确实现方式

以下三种写法都能实现动态拼接参数名取值的需求,按推荐优先级排序:

  • 优先使用Laravel Request内置的input()方法,这是框架官方推荐的参数获取方式,容错性最高:
public function updateMethod(Request $request)
{
   $i = 1;
   // 双引号内用大括号包裹变量是PHP的标准语法,会自动把$i替换为对应值拼接成完整参数名
   dd($request->input("input_name_{$i}"));
}

这种写法支持传入第二个参数作为默认值,比如$request->input("input_name_{$i}", ''),当请求中不存在对应参数时会直接返回设置的默认值,不会抛出属性不存在的异常。

  • 如果要使用对象动态属性的写法,需要用花括号把完整的动态属性名整体包裹,明确告知PHP解析器这部分是需要计算的属性名:
public function updateMethod(Request $request)
{
   $i = 1;
   dd($request->{"input_name_{$i}"});
}
  • 也可以先把拼接完成的完整参数名存到单独变量中,再通过该变量访问对象属性:
public function updateMethod(Request $request)
{
   $i = 1;
   $paramName = "input_name_{$i}";
   dd($request->$paramName);
}

内容的提问来源于stack exchange,提问作者Pouya Vaghefi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 16:33:28