gpt4 book ai didi

php - Laravel - Blade 注释, Blade 渲染导致页面崩溃

转载 作者:IT王子 更新时间:2023-10-29 00:07:16 32 4
gpt4 key购买 nike

我正在渲染一个页面,该页面主要是 Laravel 中带有 view::make 的表单,它正在崩溃,导致 ERR_CONNECTION_RESET。经过长时间的调查和许多红鲱鱼,我开始从 Blade 文件中删除(不评论)随机部分以供查看,并意识到如果我

a) 删除表单此部分内的 {{Form}} 调用中的 2 个

b) 从表单的此部分周围删除 {{-- 和 --}}

    {{--
<div class="form-row">
{{ Form::label('foo', 'foo:') }}
{{ Form::text('foo') }}
</div>
<div class="form-row">
{{ Form::label('foo', 'foo:') }}
{{ Form::text('foo') }}
</div>
<div class="form-row">
{{ Form::label('foo', 'foo') }}
{{ Form::text('foo') }}
</div>
--}}

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

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

最佳答案

您应该只将 Blade 注释用于简单的注释,或注释掉单行 Blade 函数。

不要在 Blade 注释中嵌套 Blade/PHP 代码。您可以使用标准的 PHP block 注释在单个注释中注释掉多行代码(PHP、HTML、多次插入(insert)函数等)。


有效 Blade 评论:

单刀功能:

{{-- Form::text('foo') --}}

备注:

{{-- Form Section 1 --}}

无效的 Blade 评论:

语法错误:

{{-- Form::text('foo') --  }} 

“@”在 Blade 注释内

{{-- @Form::text('foo') --}} 

嵌套 PHP:

{{-- <?php 
echo "foo";
echo "bar
?> --}}

嵌套 Blade :

{{-- 
{{ HTML::form("foo") }};
{{ HTML::form("bar") }};
--}}

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

<?php /* 
{{ HTML::form("foo") }};
{{ HTML::form("bar") }};
*/ ?>

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

{{-- HTML::form("foo") --}};
{{-- HTML::form("bar") --}};

内部:

对于 OP 的代码,Laravel 的 Blade Compiler 会生成一个包含以下 PHP/HTML 的临时 PHP 文件:

<?php /* 
<div class="form-row">
<?php echo Form::label('foo', 'foo:'); ?>

<?php echo Form::text('foo'); ?>

</div>
<div class="form-row">
<?php echo Form::label('foo', 'foo:'); ?>

<?php echo Form::text('foo'); ?>

</div>
<div class="form-row">
<?php echo Form::label('foo', 'foo'); ?>

<?php echo Form::text('foo'); ?>

</div>
*/ ?>

Blade 注释中的 Blade 仍在被解析为 PHP。 PHP block 注释中的 PHP 结束标记导致 Apache 的解析器提前结束,导致一些格式错误的 PHP/HTML 可能导致连接崩溃(可能是由悬空的 */?>)。

?> breaks out of PHP mode and returns to HTML mode, and // or #cannot influence that.

使用上述任何无效的 Blade 注释都会导致类似的编译问题。除了注释或注释 Blade 功能以外的任何内容,请避免使用 Blade 注释。

关于php - Laravel - Blade 注释, Blade 渲染导致页面崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27830200/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com