Laravel Blade 在“@if”之前评论
Laravel Blade comment before "@if"
有时,在HTML中,我需要避免添加额外的白色space,但我还需要添加“@if()”块。为了实现这一点,我采用了这种方法:
some text{--
--}@if($someCondition){--
--}more text with no space between
@endif
而且这种方法效果很好。然而,在将我的开发和实时环境升级到 Laravel 5.5(从 Laravel 5.2)之后,开发环境工作正常,但实时环境将上面的 blade 渲染成下面的 HTML:
some text@if($someCondition)more text with no space between
<?php endif; ?>
... 所以 blade 注释后的 "if" 语句保留为纯文本。
我知道这是可能的,因为我的两个开发环境都能正确呈现页面。我查看了 PHP 个版本并复制了整个代码目录,但我根本找不到它们之间的任何区别,更不用说会导致处理方式不同的区别了。
为什么 Laravel 的 blade 引擎不允许在 blade 评论后立即使用“@”?
使用 PHP 7.029,Laravel 5.5,CentOS。
解决原始问题的替代方法是直接为您的 if 语句编写一些PHP代码:
some text<?php
if($someCondition):
?>more text with no space between<?php
endif;
?>
(但是,我同意这不是编写模板的最有效方法,因为您将混合使用 Blade 和 PHP)
Laravel 将您的 blade 模板转换为 PHP,然后使用这些转换后的文件进行渲染。因此,如果您使用 Blade 模板直接编写一些 PHP 代码,它的工作原理是一样的。
始终可以使用 Blade 原生 php 机箱...
some text{{ if(condition) {do something} }}more text
这使内联 php 与您的 HTML 更加灵活。
我发现了这个问题。该视图缓存在开发环境中,这就是它工作的原因。
Laravel 5.3 和 5.5 之间的某个地方似乎引入了一个新错误。 blade 评论在分析 blade 的其余部分之前被删除,这可能会导致问题,正如我在此处的问题中所展示的那样。这以前在 Laravel 5.2.
中有效
我确实找到了解决方法:
some text{{null
}}@if($someCondition){--
--}more text with no space between
@endif
产生一些有用的东西:
some text<?php echo e(null); ?><?php if($someCondition): ?>more text with no space between
<?php endif; ?>
有时,在HTML中,我需要避免添加额外的白色space,但我还需要添加“@if()”块。为了实现这一点,我采用了这种方法:
some text{--
--}@if($someCondition){--
--}more text with no space between
@endif
而且这种方法效果很好。然而,在将我的开发和实时环境升级到 Laravel 5.5(从 Laravel 5.2)之后,开发环境工作正常,但实时环境将上面的 blade 渲染成下面的 HTML:
some text@if($someCondition)more text with no space between
<?php endif; ?>
... 所以 blade 注释后的 "if" 语句保留为纯文本。
我知道这是可能的,因为我的两个开发环境都能正确呈现页面。我查看了 PHP 个版本并复制了整个代码目录,但我根本找不到它们之间的任何区别,更不用说会导致处理方式不同的区别了。
为什么 Laravel 的 blade 引擎不允许在 blade 评论后立即使用“@”?
使用 PHP 7.029,Laravel 5.5,CentOS。
解决原始问题的替代方法是直接为您的 if 语句编写一些PHP代码:
some text<?php
if($someCondition):
?>more text with no space between<?php
endif;
?>
(但是,我同意这不是编写模板的最有效方法,因为您将混合使用 Blade 和 PHP)
Laravel 将您的 blade 模板转换为 PHP,然后使用这些转换后的文件进行渲染。因此,如果您使用 Blade 模板直接编写一些 PHP 代码,它的工作原理是一样的。
始终可以使用 Blade 原生 php 机箱...
some text{{ if(condition) {do something} }}more text
这使内联 php 与您的 HTML 更加灵活。
我发现了这个问题。该视图缓存在开发环境中,这就是它工作的原因。
Laravel 5.3 和 5.5 之间的某个地方似乎引入了一个新错误。 blade 评论在分析 blade 的其余部分之前被删除,这可能会导致问题,正如我在此处的问题中所展示的那样。这以前在 Laravel 5.2.
中有效我确实找到了解决方法:
some text{{null
}}@if($someCondition){--
--}more text with no space between
@endif
产生一些有用的东西:
some text<?php echo e(null); ?><?php if($someCondition): ?>more text with no space between
<?php endif; ?>