Vue声明式渲染在Laravel中遇PHP报错,求教@符号的作用
关于Laravel中
@符号作用的解答 首先得搞明白你遇到这个报错的根源:Laravel自带的Blade模板引擎,默认会把{{ }}这种语法当成PHP输出语句来解析——它会尝试把{{ message }}转换成<?php echo e($message); ?>,但你根本没定义PHP层面的$message变量,所以就抛出了那个"Use of undefined constant message"的错误。
而你用到的@符号,在Blade里的核心作用就是转义模板引擎的语法解析:
- 当你在
{{ }}前面加上@,写成@{{ message }}时,Blade就会知道:「哦,这个{{ }}不是给我用的,我不用解析它」 - 最终它会把
@去掉,直接把{{ message }}原封不动地输出到HTML页面中,这样前端的Vue.js就能正常识别自己的模板语法,完成数据渲染了
顺便提一句,@的转义作用不止于双大括号:如果你想输出一个@符号本身,可以写@@;如果不想让Blade解析@if这类指令,也可以写成@@if,原理都是一样的——告诉Blade跳过对后续语法的处理。
内容的提问来源于stack exchange,提问作者Udhav Sarvaiya
相关产品推荐
相关产品推荐

