9

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

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

但这只是输出这样的字符串:

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

怎么来的。??

4

6 回答 6

35

我认为这是无缘无故的矫枉过正。我会做:

<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。

于 2013-09-25T16:11:14.737 回答
14

您可能必须:

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

因为, link() 使用实体来转义标题:

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>"
于 2013-09-25T15:50:46.890 回答
7

您还可以使用 html_entity_decode 让您的代码正常工作

{{ html_entity_decode( HTML::link("#", HTML::image("img/logo.png", "Logo") ) ) }}
于 2014-08-04T16:00:48.367 回答
3

HTML 助手已从 Laravel 5 中删除

现在你可以简单地使用它

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

默认情况下,此资产指向您的 larval 应用程序的公共文件夹

于 2017-03-02T06:42:44.713 回答
0

Additional to correct answer also you can add some attribute like height and width

<a href="#">{{ HTML::image("img/logo.png", "Logo",array('height'=>'100','width'=>'100')) }}</a>
于 2015-03-22T09:36:45.013 回答
0
\Html::tag('a', \Html::image('image path')->toHtml(), ['href' => 'link']);
于 2016-08-12T11:19:34.317 回答