HTML in a HTML::link call



我正在使用Bootstrap CSS框架为我的网站提供支持,我正在尝试使用它创建一个菜单。如何在HTML::link调用中使用 HTML?

{{ HTML::link('#', 'Account<b class="caret"></b>', [
    'id'          => 'drop1',
    'data-toggle' => 'dropdown',
    'class'       => 'no-ajaxy']) }}

不过,它似乎被拉拉维尔逃脱了。

输出:

<a href="#" id="drop1" data-toggle="dropdown" class="no-ajaxy">Account&lt;b class="caret"&gt;&lt;/b&gt;</a>

预期输出:

<a href="#" id="drop1" data-toggle="dropdown" class="no-ajaxy">Account<b class="caret"></b></a>

如何阻止拉拉维尔转义输出?谢谢!

尝试用 HTML::decode() 包装它。该方法将实体转换为 HTML 字符。

{{ HTML::decode(HTML::link('#', 'Account<b class="caret"></b>', [
                'id'          => 'drop1',
                'data-toggle' => 'dropdown',
                'class'       => 'no-ajaxy'])) }}

您将获得插入符号图标的呈现。

link() 方法的源代码可以在这里看到: http://laravel.com/api/source-class-Illuminate.Html.HtmlBuilder.html#113-129

如您所见,$this->实体(它只是 htmlentities 的包装器,将所有特殊字符转换为实体)正在$title被调用。除非您想投入大量工作来覆盖 HtmlBuilder,否则无法阻止此行为。

最新更新