【问题标题】:Creating Image link with HTML Helper使用 HTML Helper 创建图像链接
【发布时间】:2013-10-01 05:26:43
【问题描述】:

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

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

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

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

怎么会。??

【问题讨论】:

  • 在 laravel {{ $string }} 中输出一个“安全”的字符串,其中像 这样的 html 符号被编码。尝试使用 {!! $string !!} 来避免在需要时进行编码。在此处查看更多信息:stackoverflow.com/questions/29253979/…

标签: laravel image laravel-4 anchor


【解决方案1】:

您可能必须:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 太棒了!当我尝试使用引导程序的字形图标时,这对我有用,例如{{ html_entity_decode(Menu::item('home','&lt;span class="glyphicon glyphicon-home"&gt;&lt;/span&gt; Home')) }}
      • 这似乎是最“Laravelish”的方法?您还可以将上述代码包装在自定义帮助函数中以进行清理。
      【解决方案4】:

      除了正确答案,您还可以添加一些属性,例如 heightwidth

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

      【讨论】:

        【解决方案5】:
        \Html::tag('a', \Html::image('image path')-&gt;toHtml(), ['href' =&gt; 'link']);

        【讨论】:

        • 感谢 Anton,欢迎来到 StackOverflow。你能解释你的答案或添加更多细节吗?这样,您的答案将对人们更有用(并获得支持)
        【解决方案6】:

        HTML 助手已从 Laravel 5 中移除

        现在你可以简单地使用它了

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-03-07
          • 1970-01-01
          • 2013-03-23
          • 2011-06-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多