Php “之前的Laravel叶片评论”@如果;
有时,在HTML中,我需要避免添加额外的空白,但我还需要添加“@if()”块。为了实现这一点,我采取了以下方法:Php “之前的Laravel叶片评论”@如果;,php,html,laravel,blade,Php,Html,Laravel,Blade,有时,在HTML中,我需要避免添加额外的空白,但我还需要添加“@if()”块。为了实现这一点,我采取了以下方法: some text{-- --}@if($someCondition){-- --}more text with no space between @endif 这种方法一直很有效。但是,在将我的开发和实时环境升级到Laravel 5.5(从Laravel 5.2)后,开发环境工作正常,但实时环境将上述刀片渲染为以下HTML: some text@if($someCondit
some text{--
--}@if($someCondition){--
--}more text with no space between
@endif
这种方法一直很有效。但是,在将我的开发和实时环境升级到Laravel 5.5(从Laravel 5.2)后,开发环境工作正常,但实时环境将上述刀片渲染为以下HTML:
some text@if($someCondition)more text with no space between
<?php endif; ?>
一些text@if($someCondition)更多文本之间没有空格
。。。因此,刀片注释后面的“if”语句将保留为纯文本
我知道这是可能的,因为我的两个开发环境都正确地呈现了页面。我查看了PHP版本并复制了整个代码目录,但我根本找不到它们之间的任何差异,更不用说会导致不同处理的差异了
有没有任何理由可以解释为什么Laravel的刀片引擎不允许在刀片评论之后加上“@”
使用PHP7.029,Laravel 5.5,CentOS。解决原始问题的另一种方法是直接为if语句编写一些PHP代码:
some text<?php
if($someCondition):
?>more text with no space between<?php
endif;
?>
一些文本之间没有空格的更多文本
(但是,我同意这不是编写模板的最费力的方式,因为您将在Blade和PHP之间混合使用)
Laravel将刀片模板转换为PHP,然后使用这些转换后的文件进行渲染。因此,如果您直接使用刀片模板编写一些PHP代码,它的工作原理也一样。可以始终使用刀片原生PHP附件
some text{{ if(condition) {do something} }}more text
这就为HTML提供了内联php的灵活性。我发现了这个问题。视图缓存在开发环境中,这就是它工作的原因 看起来Laravel在5.3和5.5之间引入了一个新的bug。在分析刀片的其余部分之前,将删除刀片注释,这可能会导致问题,正如我在这里的问题中所示。这是以前在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; ?>
一些文本之间没有空格的更多文本