Laravel 5.6:Blade调用date函数报错,如何正确显示HTML?
问题分析与解决方案
嘿,这个问题我熟!你遇到的报错其实是Blade语法的一个小细节没注意到~
为什么会报错?
Blade的{{ }}语法是PHP echo 语句的简化封装,但它内部只需要写PHP表达式,不需要加结尾的分号。你写的{{ date('d M Y'); }}里多了个分号,这就导致Blade解析后生成的PHP代码出现语法错误——因为Blade会把括号内的内容直接拼接在echo后面,多余的分号打破了语法结构,所以才会抛出Parse error。
正确的Blade写法
把分号去掉就可以正常运行了:
{{ date('d M Y') }}
这样就能和原生PHP语句<?php echo date('d M Y'); ?>输出完全一样的结果。
更推荐的Laravel日期处理方式
其实Laravel自带了强大的Carbon日期库,用它处理日期会更符合Laravel的开发习惯,比如获取当前日期可以这样写:
{{ now()->format('d M Y') }}
如果是模型中的日期字段(比如created_at),还可以直接调用Carbon的格式化方法:
{{ $yourModel->created_at->format('d M Y') }}
关于HTML数据的显示
如果你的内容包含HTML标签,需要区分两种场景:
- 用
{{ }}:会自动转义HTML标签(比如把<strong>变成<strong>),适合显示用户输入的内容,避免XSS风险; - 用
{!! !!}:不会转义HTML,标签会直接渲染,适合输出安全的HTML内容(比如你自己生成的富文本):
{!! '<p>这是一段包含<strong>加粗</strong>的HTML内容</p>' !!}
内容的提问来源于stack exchange,提问作者Udhav Sarvaiya
相关产品推荐
相关产品推荐

