首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel -刀片注释,刀片渲染导致页面崩溃

Laravel -刀片注释,刀片渲染导致页面崩溃
EN

Stack Overflow用户
提问于 2015-01-08 06:59:28
回答 6查看 74.2K关注 0票数 46

我正在呈现一个页面,该页面主要是一个具有

在Laravel中,它正在崩溃,导致错误

_

连接

_

重置。经过长时间的调查和许多转移注意力的问题,我开始从刀片文件中删除(而不是注释)用于视图的随机部分,并意识到如果我

a)擦除2个

表单此部分内的调用

b)删除

从表单的这一部分开始

代码语言:javascript
运行
复制
{{--
    
      {{ Form::label('foo', 'foo:') }}
      {{ Form::text('foo') }}
    
    
      {{ Form::label('foo', 'foo:') }}
      {{ Form::text('foo') }}
    
    
      {{ Form::label('foo', 'foo') }}
      {{ Form::text('foo') }}
    
    --}}

页面将呈现。我不确定这里到底是什么原因。上面和下面还有其他的块,尽管这是一个3-div注释掉的部分,其他的都不是。

有人知道这是什么原因吗?在WAMP上运行,如果这很重要的话。

EN

回答 6

Stack Overflow用户

发布于 2015-01-31 03:55:38

注意:这个答案是针对Laravel 4.2给出的,但仍然适用。有一些Blade编译问题的特殊情况取决于Laravel和/或PHP的版本,所以最好只在最简单的用例中使用Blade注释。

解决方案是只对简单的注释使用Blade注释,或者注释掉单行的Blade函数。不要在Blade注释中嵌套Blade/PHP代码。使用标准的PHP块注释来注释掉单个注释中的多行代码(PHP、HTML、多个刀片函数等)。

有效的刀片注释:

单刀片功能:

代码语言:javascript
运行
复制
{{-- Form::text('foo') --}}

备注:

代码语言:javascript
运行
复制
{{-- Form Section 1 --}}

无效的刀片注释:

语法不正确:

代码语言:javascript
运行
复制
{{-- Form::text('foo') --  }}

刀片注释中的"@“

代码语言:javascript
运行
复制
{{-- @Form::text('foo') --}}

嵌套PHP:

代码语言:javascript
运行
复制
{{--  --}}

嵌套刀片:

代码语言:javascript
运行
复制
{{-- 
{{ HTML::form("foo") }};
{{ HTML::form("bar") }};
--}}

改用PHP块注释。它们仍然可以在blade.php文件中使用

或者,一次注释掉一行Blade:

代码语言:javascript
运行
复制
{{-- HTML::form("foo") --}};
{{-- HTML::form("bar") --}};

内部结构:

对于OP的代码,Laravel的Blade编译器将生成一个临时PHP文件,其中包含以下PHP/HTML:

代码语言:javascript
运行
复制
*/ ?>

Blade注释中的Blade仍在解析为PHP。PHP块注释中的PHP结束标记会导致Apache的解析器提前结束,从而导致一些格式错误的PHP/HTML可能会使您的连接崩溃(很可能是由悬空引起的

)。

?>脱离了PHP模式,返回到HTML模式,//或者#不能影响这一点。

使用上述任何无效的Blade注释都会导致类似的编译问题。避免对除注释或注释Blade函数之外的任何内容进行Blade注释,一次删除一行。

票数 51
EN

Stack Overflow用户

发布于 2020-02-04 14:11:28

Blade中的评论非常简单!

代码语言:javascript
运行
复制
{{-- Blade comments that wil not appear in the rendered HTML output --}}

你可以做普通的PHP注释:

票数 6
EN

Stack Overflow用户

发布于 2016-01-04 23:32:01

我也有类似的症状,似乎只与评论的长度有关。我用一个根本不包含任何PHP代码或blade语句的注释对其进行了测试:

代码语言:javascript
运行
复制
{{--
0123456789abcdef
0123456789abcdef
0123456789abcdef
--}}

我不断添加重复行的副本,直到它崩溃。这条评论后面跟着一个刀片

语句,并且相应的未在编译后的模板中结束,

但是结案陈词做到了

,导致语法上无效的编译模板。

这似乎是刀片编译器中的一个错误,我将报告它。

解决方法是使用--}}{{-- ]拆分长刀片注释。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27830200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档