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

Laravel中使用<script type='text/html'>模板代码报错的解决方法

Laravel中嵌入前端模板出现PHP未定义常量错误的解决方法

问题描述

在Laravel项目中嵌入一段<script type="text/html">包裹的前端模板代码后,出现以下PHP错误:

Use of undefined constant index - assumed 'index' (this will throw an Error in a future version of PHP)

原模板代码如下:

<script type="text/html">
    <tr data-index="$index">
        <td>{{index+1}}</td>
        <td>{{id}}</td>
        <td class='edit' data-type='textbox' data-field='firstname'>{{firstname}}</td>
        <td class='edit' data-type='textbox' data-field='lastname'>{{lastname}}</td>
        <td class='edit' data-type='dropdown' data-field='color_id' data-source='arr_colors'>{{color_id|select(arr_colors)}}</td>
        <td><button type='button' class='btn btn-danger btn-flat btn-xs' data-bind="rem__click:remRow"  data-id='$index' title='Удалить запись'><i class='fa fa-fw fa-remove'></i></button></td>        
    </tr>
</script>

错误原因

Laravel默认使用Blade模板引擎,Blade会将{{ }}语法解析为PHP输出语句。模板中的{{index+1}}被Blade误认为是PHP代码,它试图解析index为PHP常量,但该常量并未定义,因此抛出错误——而实际上这里的{{ }}是前端模板的语法,并非Blade语法。

解决方法

方法1:使用Blade的@verbatim指令

用@verbatim和@endverbatim包裹整个前端模板代码,告诉Blade跳过对这段代码的解析,保留原始的前端模板语法:

@verbatim
<script type="text/html">
    <tr data-index="$index">
        <td>{{index+1}}</td>
        <td>{{id}}</td>
        <td class='edit' data-type='textbox' data-field='firstname'>{{firstname}}</td>
        <td class='edit' data-type='textbox' data-field='lastname'>{{lastname}}</td>
        <td class='edit' data-type='dropdown' data-field='color_id' data-source='arr_colors'>{{color_id|select(arr_colors)}}</td>
        <td><button type='button' class='btn btn-danger btn-flat btn-xs' data-bind="rem__click:remRow"  data-id='$index' title='Удалить запись'><i class='fa fa-fw fa-remove'></i></button></td>        
    </tr>
</script>
@endverbatim

方法2:修改前端模板的语法分隔符

如果你使用的前端模板库支持自定义语法分隔符(比如Handlebars、Underscore模板等),可以将前端模板的{{ }}替换为其他未被Blade使用的分隔符(例如[[ ]])。这种方法需要对应调整前端模板的解析配置,确保前端能正确识别新的分隔符。

推荐方案

优先选择方法1,因为@verbatim是Blade官方提供的解决方案,无需修改前端模板的原有逻辑,配置简单且不易出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 12:13:12