2013-02-12 45 views
2

在Laravel中,如何在通過HTML::link_to_route()鏈接到路線時使用html標籤?的我有什麼在HTMTL :: link_to_route()中使用html-tags

例子:

<li> 
    {{ HTML::link_to_route("books_new", "New Book") }} 
</li> 

我會想做什麼:

<li> 
    {{ HTML::link_to_route( 
"books_new", 
"<span class='icon-book'></span>New Book" 
    ) }} 
</li> 

回答

5

我知道這是不是你想要的答案聽到 - 但不能通過link_to_route傳遞html。

問題是HTML類的輸出會自動轉義。所以,如果你嘗試過這樣的:

{{ HTML::link_to_route('author','<img src="'.URL::base().'assets/images/image.jpg" alt="icon" />')) }} 

它出來是這樣的:

&lt;img src=&quot;http://laravel3.dev/assets/images/image.jpg&quot; alt=&quot;icon&quot; /&gt; 

這將只是在屏幕上的文字 - 沒有圖像。相反,您需要使用URI::to_route('author')並自行生成鏈接。所以幫一個這樣的人(未經測試):

function link_to_route_image($route, $image) 
{ 
    $m = '<a href="'.URL::to_route($route).'">' 
     . '<img>'.$image.'</img>' 
     . '</a>'; 
    return $m; 
} 
+1

謝謝,這很有幫助!我現在用'New Book'。 – Ben 2013-02-12 20:22:00

+0

我正在尋找這樣的東西,並認爲我的自我,這應該基於link_to_route組合和URL :: to_route。但事實並非如此。它看起來像他們更新了這個新版本,所以現在適當的解決方案就像這樣{{URL :: route('profile.show',['profile'=> Auth :: user() - > username])}}這個例子鏈接到用戶配置文件,但to_route現在只在路由中改變。 – 2015-01-05 18:58:23

1

你不能有HTML::....(類)HTML標記,在文檔中,他們說什麼這是作爲參數傳遞給類的HTML實體函數轉義,以使前端更安全!

-2

據我所知,Laravel不允許你這樣做。對我來說,這似乎超出了標準。

相反,將一個名爲icon-book的類應用到您的錨標記中,然後使用該類將該圖標放置在錨點中作爲「背景圖像」。

HTML::link_to_route('books_new', 'New Book', array('class' => 'icon-book')) 

或者:

  1. 插入span標籤li標籤內
  2. 分配icon-book類的li標籤
+1

另外,可能很方便的一點是,新的Laravel 4(目前處於測試階段)已經取消了對「HTML」類的支持。他們這樣做是有原因的。儘管如此,如果您在升級到Laravel 4時仍然希望使用它,那麼Packagist上會有一些軟件包。 – 2013-02-12 14:26:35

5

這樣的事情呢?

<li> 
    <a href="{{ URL::to_route('books_new') }}"><span class='icon-book'></span>New Book</a> 
</li> 

如果您使用「字體真棒」,只需添加類錨標記提到將適用於大多數情況下,有人因爲「圖標類是通過CSS附和道:之前」。您可能需要在CSS中進行一些調整;但在語義標記方面可能會更好。

2
<a href="{{ URL::route('empdelete', array('id' => $employee->id)) }}"> 
     <img src="{{ asset('images/tick-red.jpg') }}" alt="DRC" id="DRCS-logo" /></a> 
0

您可以使用此代碼將字體超棒或圖標包含到Laravel Blade模板中,我已經使用並完美工作。

<a href="{{ route('member.edit',$data->id) }}"><i class="fa fa-pencil-square-o" aria-hidden="true"></i>Edit</a>