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

Laravel Blade模板无法输出双花括号的技术求助

在Laravel Blade中输出双花括号的正确方法

我来帮你搞定这个问题!在Blade模板里直接输出{{ n }}这种双花括号文本,确实容易因为Blade的模板解析规则踩坑,咱们一步步捋清楚可行的方案,还有你之前尝试失败的原因。

最推荐的方案:使用@verbatim指令

Blade专门提供了@verbatim指令,用来包裹不需要它解析的内容,简直是为这种场景量身定做的。修改你的视图代码如下:

<div class="new-page">
    <div class="row">
        <div class="col-sm-4"></div>
        <h3 class="col-md-6 center">
            Page 
            @if(isset($n))
                {{ $n }}
            @else
                @verbatim
                {{ n }}
                @endverbatim
            @endif
        </h3>
    </div>
    <!-- 你的其他页面内容 -->
</div>

用@verbatim包裹后,Blade会原封不动地把里面的{{ n }}输出到页面,完全不会解析它。

其他可行的替代方法

如果你不想用@verbatim,还有两种可靠的方式:

  • HTML实体转义法:
    把花括号换成对应的HTML实体({是&#123;,}是&#125;),然后用{!! !!}输出(因为Blade默认的{{ }}会转义HTML实体,必须用{!! !!}才能让实体显示成真实的花括号):
{!! '&#123;&#123; n &#125;&#125;' !!}

你之前尝试的这个写法其实是对的,可能没生效是因为放在条件判断里的写法细节问题,调整后就能正常工作。

  • PHP直接输出法:
    用@php标签输出,但要注意避开Blade的解析。你之前的@php echo '{{ n }}'; @endphp失败,是因为Blade会先解析里面的{{ n }},把它当成了Blade表达式。正确的写法应该是转义后输出:
@php echo htmlspecialchars('{{ n }}'); @endphp

或者直接输出HTML实体:

@php echo '&#123;&#123; n &#125;&#125;'; @endphp

为什么你之前的@{{ n }}没生效?

@{{ n }}本身是Blade的正确写法,作用是告诉Blade不要解析这个表达式,直接输出{{ n }}。如果它没生效,大概率是你的页面里引入了Vue、React这类前端框架——这些框架会把页面上的{{ n }}当成自己的插值表达式,进而解析成空白或者其他内容。这种情况下,@verbatim或者HTML实体的方法就更可靠,因为它们能避免前端框架的二次解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 10:02:52