Blade / Laravel-防止标记模板中的自闭合标签

时间:2019-11-19 16:37:55

标签: php html laravel laravel-blade

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

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

a标签的CSS为:

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>

我做了研究,发现所有内容:How to prevent self closing tags as well empty tags after transforming-不是XSLT,所以不是重复的,也不依赖于我的情况。

如何在刀片模板中将组件包裹在锚定标签中,而不能使其自身闭合?

2 个答案:

答案 0 :(得分:0)

反正只打印一个标签而不填充其href属性怎么样?像这样:

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

如果标签没有href属性,它将仅显示其内容。 让我知道答案是否令人满意。

答案 1 :(得分:0)

您的问题中至少有一部分是由于两个if语句。为什么需要它们?

好吧,回顾一下您的代码,我更好地了解了您要完成的工作是什么... 问题是两个if语句。您只需要一个if语句。尝试这样的操作,您将获得想要的结果。

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

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

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