在 HTMTL::link_to_route() 中使用 html-tags

Posted

技术标签:

【中文标题】在 HTMTL::link_to_route() 中使用 html-tags【英文标题】:Using html-tags within HTMTL::link_to_route() 【发布时间】:2013-01-27 20:56:50 【问题描述】:

在 Laravel 中,如何在通过 html::link_to_route() 链接到路由时使用 html-tags?

我所拥有的示例:

<li>
     HTML::link_to_route( "books_new", "New Book" ) 
</li>

我想做的事:

<li>
     HTML::link_to_route( 
"books_new", 
"<span class='icon-book'></span>New Book" 
    ) 
</li>

【问题讨论】:

【参考方案1】:

我知道这不是您想听到的答案 - 但您不能通过 link_to_route 传递 html。

问题是 HTML 类的输出被自动转义了。所以如果你试图通过这个:

 HTML::link_to_route('author','<img src="'.URL::base().'assets/images/image.jpg"  />')) 

结果是这样的:

&lt;img src=&quot;http://laravel3.dev/assets/images/image.jpg&quot; alt=&quot;icon&quot; /&gt;

这将只是屏幕上的文本 - 没有图像。相反,您需要使用URI::to_route('author') 并自己生成链接。所以做一个这样的助手(未测试):

function link_to_route_image($route, $image)

   $m = '<a href="'.URL::to_route($route).'">'
      . '<img>'.$image.'</img>'
      . '</a>';
   return $m;

【讨论】:

谢谢,这很有帮助!我现在使用&lt;a href=" URL::to_route( "books_new" ) "&gt;&lt;span class="icon-book"&gt;&lt;/span&gt;New Book&lt;/a&gt; 我正在寻找类似的东西,并认为这应该基于 link_to_route 组合和 URL::to_route 工作。但事实并非如此。看起来他们在新版本中更新了这个,所以现在正确的解决方案是这样的 URL::route('profile.show', ['profile' => Auth::user()->username]) 例如,此链接指向用户个人资料,但 to_route 仅在路由中更改。【参考方案2】:

这样的事情怎么样?

<li>
    <a href=" URL::to_route('books_new') "><span class='icon-book'></span>New Book</a>
</li>

如果您使用的是“Font Awesome”,那么在大多数情况下,只需将类添加到锚标记就可以了,因为“图标类通过 CSS :before 回显”。您可能需要对 CSS 进行一些调整;但在语义标记方面可能会更好。

【讨论】:

【参考方案3】:
<a href=" URL::route('empdelete', array('id' => $employee->id)) ">
        <img src=" asset('images/tick-red.jpg') "  id="DRCS-logo" /></a>

【讨论】:

【参考方案4】:

您不能使用 HTML::.... (class) 进行 HTML 标记,在文档中他们说作为参数传递给类的任何内容都使用 HTML 实体函数进行转义,以使前端更安全!

【讨论】:

【参考方案5】:

您可以使用此代码在 Laravel Blade 模板中包含字体真棒或图标,我已经使用并完美运行。

<a href=" route('member.edit',$data->id) "><i class="fa fa-pencil-square-o" aria-hidden="true"></i>Edit</a>

【讨论】:

【参考方案6】:

如果您使用的是“Font Awesome”,那么在大多数情况下,只需将类添加到某人提到的锚标记就可以了,因为“图标类通过 CSS :before 回显”。

所以这对我有用:

<li>
     HTML::link_to_route( "books_new", "New Book", null, ['class' => 'fa fa-edit'] ) 
</li>

【讨论】:

【参考方案7】:

据我所知,Laravel 不允许你这样做。对我来说,这似乎不合标准。

相反,将一个名为icon-book 的类应用到您的锚标记,然后使用该类将图标作为“背景图像”放入您的锚中。

HTML::link_to_route('books_new', 'New Book', array('class' => 'icon-book'))

或者:

    li标签内插入span标签 将icon-book 类分配给li 标签

【讨论】:

此外,为了方便起见,请注意新的 Laravel 4(目前处于测试阶段)已取消对 HTML 类的支持。他们这样做是有原因的。尽管如此,如果您在升级到 Laravel 4 时仍想使用它,Packagist 上有一些软件包。

以上是关于在 HTMTL::link_to_route() 中使用 html-tags的主要内容,如果未能解决你的问题,请参考以下文章

NOIP 2015 & SDOI 2016 Round1 & CTSC 2016 & SDOI2016 Round2游记

秋的潇洒在啥?在啥在啥?

上传的数据在云端的怎么查看,保存在啥位置?

在 React 应用程序中在哪里转换数据 - 在 Express 中还是在前端使用 React?

存储在 plist 中的数据在模拟器中有效,但在设备中无效

如何在保存在 Mongoose (ExpressJS) 之前在模型中格式化数据