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

如何在Blade路由中传递变量?Laravel资源路由传参404问题

问题解决方法

你生成的URL里出现%24project-%3Eid,说明模板中的$project->id没被解析成实际ID值,而是被当作字符串输出了,这是核心问题。以下是具体解决办法:

1. 确认变量已传递到视图

检查控制器返回视图时,是否正确传入了$project变量:

// 写法一
return view('你的视图文件名', compact('project'));
// 写法二
return view('你的视图文件名')->with('project', $project);

如果没传这个变量,模板里的$project会被当成字符串,直接输出导致URL错误。

2. 修正路由参数传递方式

你用Route::resource生成的project.update路由,参数是{project},推荐直接传递模型实例,Laravel会自动提取ID:

{{ route('project.update', $project) }}

如果要手动传ID,需对应路由参数名称,用关联数组传递:

{{ route('project.update', ['project' => $project->id]) }}

3. 验证$project实例有效性

先在视图里临时输出{{ $project->id }},确认能显示正确的数字,排除$project为空或无ID值的情况。

另外注意:project.update是PUT/PATCH请求,若用表单提交,需在表单内添加@method('PUT')或@method('PATCH');若用a标签跳转,默认是GET请求,也会触发404。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 20:17:07