2013-09-25 23 views
6

Próbuję utworzyć łącze do obrazu za pomocą pomocnika HTML programu Laravel 4. Wydaje się jednak, że tak naprawdę nie działa. Mam ten wiersz koduTworzenie łącza do obrazu za pomocą pomocnika HTML

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

Ale to właśnie wyprowadza strln takiego:.

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

Jak to możliwe ??

+0

W laravel {{$ string}} wyprowadza „bezpieczne” ciąg gdzie symbole html jak < and > są kodowane. Spróbuj użyć {!! $ string !!} zamiast tego, aby w razie potrzeby uniknąć kodowania. Zobacz więcej tutaj: http://stackoverflow.com/questions/29253979/laravel-5-display-html-with-blade –

Odpowiedz

13

Prawdopodobnie będzie musiał:

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

powodu Link() używa podmioty uciec tytułem:

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

produkcji tego kodu źródłowego:

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

myślę to przesada bez powodu. zrobiłbym:

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

Gdybym wtedy potrzeba dynamicznego łącza w miejscu #, chciałbym zrobić:

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

spróbuje użyć html jak to tylko możliwe.

7

Można również użyć html_entity_decode aby uzyskać kod działa

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

Świetnie! Zrobiłem to dla mnie, próbując użyć glifphonu bootstrap, na przykład w '{{html_entity_decode (Menu :: item ('home', ' Home'))}}' – Pathros

+1

To wydaje się być najbardziej "Laravelish" podejście? Można również zawinąć powyższy kod w niestandardową funkcję pomocnika, aby go wyczyścić. – PeterG

0

dodatkowy do poprawną odpowiedź również można dodać atrybut jak wysokości i szerokości

<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

Dziękuję Antonowi i witam w StackOverflow. Czy możesz wyjaśnić swoją odpowiedź lub dodać trochę więcej szczegółów? W ten sposób twoja odpowiedź będzie bardziej przydatna dla ludzi (i dostań się do góry) – goto

0

HTML pomocnik został usunięty z Laravel 5

teraz mógłbyś proste użycie tego

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

Ten atut domyślnie punktu do folderu publicznego swojej larwalnym aplikacji