我正在开发laravel php框架,我有一个简单的问题, 在使用刀片模板引擎时,我通常使用html辅助函数 提交表格,链接或其他任何内容。
现在,当我尝试将链接指向特定路线时,我通常会这样:
{{ HTML::link_to_route('author','TheAuthor')) }}
第一个参数接受路由,第二个参数接受将出现的字符串, 为了简化代码将产生:
<a href="ROUTE URL">TheAuthor</a>
现在我想用图像取代TheAuthor 我该怎么办?
答案 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" />')) }}
它是这样的:
<img src="http://laravel3.dev/assets/images/image.jpg" alt="icon" />
这将只是屏幕上的文字 - 没有图像。相反,您需要使用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。