首页 > 解决方案 > Blade/Laravel - 防止标记模板中的自闭标签

问题描述

如果满足某个条件,我需要将一个 html 块包裹在一个锚中。代码如下所示:

@if($rs->meta['first_name'] == "MyFirstName")
<a href="/url-to-page">
@endif
<!-- HTML Markup Here -->
@if($rs->meta['first_name'] == "MyFirstName")
</a>
@endif

标签的aCSS 为:

a {display: block; width: 100%; height: 100%; }

发生的事情是a标签会自动关闭打破页面。它输出:

<a href="/url-to-page"></a>
<a href="/url-to-page">
<!-- HTML Markup Here -->
</a>

它只需要输出:

<a href="/url-to-page">
<!-- HTML Markup Here -->
</a>

我做了研究,我发现:如何在转换后防止自闭合标签以及空标签 - 不是 XSLT,所以不是重复的,与我的情况相关。

如何在刀片模板中将组件包装在锚标签中而不让它自动关闭?

标签: phphtmllaravellaravel-blade

解决方案


至少部分问题是由于两个 if 语句。你为什么需要它们?

好的,回顾您的代码,我更好地理解了您要完成的工作......问题是两个 if 语句。你只需要一个 if 语句。尝试这样的事情,你会得到你正在寻找的结果。

@if($rs->meta['first_name'] == "MyFirstName")
<a href="/url-to-page">

<!-- HTML Markup Here -->
</a>
@endif

请注意,我所做的是删除了 if。因此,如果满足您的条件,则 HTML 标记将显示为您的锚文本,最后 a 被关闭。所有这些都发生在一个 if 语句中。if 检查条件,如果为真,那么它将呈现 a 以及您在 endif 之前拥有的所有 HTML 标记。


推荐阅读