2013-09-25 38 views
6

我正在尝试使用Laravel 4的HTML助手创建图像链接。但它似乎并不真正起作用。我有这行代码使用HTML助手创建图像链接

{{ HTML::link("#", HTML::image("img/logo.png", "Logo")) }} 

但这只是输出这样的〜应变:

<img src="http://localhost/worker/public/img/logo" alt="Logo"> 

怎么来的?

+0

在laravel {{$字符串}}的公用文件夹输出“安全”的字符串,其中像< and > HTML符号编码。尝试使用{! $ string !!},而不是在需要时编码。在这里看到更多:http://stackoverflow.com/questions/29253979/laravel-5-display-html-with-blade –

回答

13

你可能要:

<a href="#">{{ HTML::image("img/logo.png", "Logo") }}</a> 

因为,链接()使用实体逃脱标题:

public function link($url, $title = null, $attributes = array(), $secure = null) 
{ 
    $url = $this->url->to($url, array(), $secure); 

    if (is_null($title) or $title === false) $title = $url; 

    return '<a href="'.$url.'"'.$this->attributes($attributes).'>'.$this->entities($title).'</a>'; 
} 

生产此源代码:

"<a href="#">&lt;img src=&quot;http://localhost/img/logo.png&quot; alt=&quot;Logo&quot;&gt;</a>" 
32

我想这是毫无理由的矫枉过正。 我会做:

<a href="#"><img src={{asset('img/logo.png')}} alt="Logo"></a> 

如果我再需要在#处的动态链接,我会做:

<a href="{{URL::to('/')}}"><img src={{asset('img/logo.png')}} alt="Logo"></a> 

尝试使用HTML作为尽你所能。

7

你也可以使用html_entity_decode让你的代码工作

{{ html_entity_decode(HTML::link("#", HTML::image("img/logo.png", "Logo"))) }} 
+1

优秀!当试图使用引导程序的图形时,我做了一些技巧,例如'{{html_entity_decode(Menu :: item('home',' Home'))}}' – Pathros

+1

这似乎是最“Laravelish”的方法?你也可以将上面的代码包装在一个自定义帮助函数中来清理它。 – PeterG

0

附加答对你也可以添加一些属性像高度宽度

<a href="#">{{ HTML::image("img/logo.png", "Logo",array('height'=>'100','width'=>'100')) }}</a> 
0
\Html::tag('a', \Html::image('image path')->toHtml(), ['href' => 'link']);
+1

感谢Anton,欢迎来到StackOverflow。你能解释你的答案还是增加一点细节?这样你的回答对于人来说就更有用了(并且得到upvotes) – goto

0

HTML帮手已从Laravel 5中删除

现在你可以简单的使用这个

<img src="{{ asset('logo.png') }}" alt="logo"> 

该资产默认指向你的幼虫应用