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

Laravel 5.5 Blade视图中如何在URL::to中使用控制器变量

解决Laravel Blade中URL::to方法嵌入变量的语法错误问题

你遇到的问题核心是在Blade的{{ }}模板标签内部错误嵌套了另一个{{ }}——因为当你写{{ ... }}时,里面已经是PHP执行环境了,不需要再用模板标签包裹变量,直接使用PHP变量语法即可。

错误原因分析

你之前的写法:

<button type="button" class="btn btn-default backurl" data-href="{{URL::to('codo/{{$p_id}}/84')}}"> Go </button>

Blade编译时,会把内部的{{$p_id}}当成字符串的一部分处理,导致生成的PHP代码语法混乱(就像你看到的编译后代码里'codo/{{$p_id); ?&gt;/84'这种错误结构),最终触发语法解析错误。

正确的写法有三种,任选其一即可:

1. 字符串拼接(最直观的PHP写法)

直接在URL::to()内部用.拼接字符串和变量:

<button type="button" class="btn btn-default backurl" data-href="{{ URL::to('codo/' . $p_id . '/' . $u_id) }}"> Go </button>

2. 双引号变量解析

利用PHP双引号会自动解析变量的特性,简化写法:

<button type="button" class="btn btn-default backurl" data-href="{{ URL::to("codo/$p_id/$u_id") }}"> Go </button>

(注意这里内部用双引号,外部Blade标签用双引号也没问题,因为Blade会正确处理嵌套引号)

3. 使用url()辅助函数(更简洁)

Laravel提供了更短的url()辅助函数,和URL::to()功能完全一致,写法更清爽:

<button type="button" class="btn btn-default backurl" data-href="{{ url("codo/$p_id/$u_id") }}"> Go </button>

额外推荐:使用命名路由(更优雅)

如果你的路由定义了名称(比如Route::get('codo/{p_id}/{u_id}', 'YourController@method')->name('codo.detail');),推荐用route()函数生成URL,这样后续路由路径变更时,不需要修改视图代码:

<button type="button" class="btn btn-default backurl" data-href="{{ route('codo.detail', [$p_id, $u_id]) }}"> Go </button>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:05:31