将图像链接到Laravel中的路线

时间:2013-02-12 12:37:33

标签: html routes hyperlink laravel helpers

我正在开发laravel php框架,我有一个简单的问题, 在使用刀片模板引擎时,我通常使用html辅助函数 提交表格,链接或其他任何内容。

现在,当我尝试将链接指向特定路线时,我通常会这样:

{{ HTML::link_to_route('author','TheAuthor')) }}

第一个参数接受路由,第二个参数接受将出现的字符串, 为了简化代码将产生:

<a href="ROUTE URL">TheAuthor</a>

现在我想用图像取代TheAuthor 我该怎么办?

3 个答案:

答案 0 :(得分:11)

或者您可以使用{{route}}

例:

<a href="{{route($route,$params)}}"><img src="'.$image.'" /></a>

答案 1 :(得分:3)

我知道这不是您想要听到的答案 - 但您无法通过link_to_route传递任何图片。

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

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

它是这样的:

&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;
}

答案 2 :(得分:1)

如果你在整个地方这样做可能会变得单调乏味,但在孤立的地方,处理这个问题的最佳方法实际上就是将整个link_to_ *方法调用包装在HTML :: decode中。

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

你无法从函数内部做任何事情(比如在解码中包装“title”部分),因为清理是在函数调用中进行的,但是如果解码整个链接,它将正确呈现html。