Laravel中如何在HTML元素属性输出PHP变量?报错求助
解决Blade模板中隐藏输入框变量渲染的语法错误问题
嘿,我来帮你快速搞定这个语法错误!你遇到的问题主要是字符串拼接和变量嵌入的写法错误,而且其实在Laravel的Blade模板里,完全不用这么麻烦地写原生PHP代码,下面给你几种正确的实现方式:
最推荐:使用Blade原生语法(简洁又安全)
Blade模板专门提供了变量输出的语法,直接用{{ }}包裹变量就行,自动帮你处理转义,代码超级清爽:
<input type="hidden" class="id" name="id" value="{{ $id }}">
根本不需要写@php块,Blade会自动解析$id变量并输出到value属性里。
如果一定要用原生PHP块(修正语法错误)
要是你因为某些原因必须用@php块,那得把字符串拼接和变量嵌入的写法改对:
写法1:单引号字符串拼接
@php $id = 123; // 记得给变量赋值加分号! echo '<input type="hidden" class="id" name="id" value="' . $id . '">'; @endphp
这里要注意:单引号里的变量不会被解析,所以得把$id放在单引号外面,用.连接字符串片段。
写法2:双引号字符串嵌入变量
双引号包裹的字符串会自动解析变量,写法更简洁:
@php $id = 123; echo "<input type='hidden' class='id' name='id' value='$id'>"; @endphp
错误原因复盘
你原来的代码有几个问题:
- 变量赋值后没加分号:
$id = some integer后面缺少分号,PHP会报错 - 字符串拼接语法错误:直接把
$id塞在单引号字符串里,PHP无法解析,而且HTML标签的写法也混乱(比如<'.input type="hidden"这里的拼接完全错误) - 没必要用原生PHP:Blade的语法就是为了让模板更简洁,尽量避免写原生PHP块哦
内容的提问来源于stack exchange,提问作者Hidayat ullah
相关产品推荐
相关产品推荐

