2012-04-26 52 views
4

我在YII中啓動了一個應用程序,我想使用適當的YII標準,但對使用它的CHTML Class有點好奇。我認爲使用CHtml::link()CHtml::image()而不是普通的HTML代碼<a></a><img src... />將花費更多時間在服務器端應用程序。我試圖尋找一些理由來使用它,但還沒有找到任何好的資源,爲什麼我應該使用它,以及它如何有益於傳統的HTML。就像我可以使用所有這些方法定義到普通HTML代碼的行動路徑,那麼爲什麼使用它混淆了使用YII CHtml :: link和CHtml :: image代替HTML

澄清,將不勝感激

感謝

任何幫助或引用
+0

我通常將chtml與模型和表單結合使用,這樣您就可以自動填充所有值。 – llamerr 2012-04-26 12:09:47

+0

感謝您的回覆,我現在正在製作網站導航菜單,與模型無關只是HTML鏈接圖像在那裏,所以你認爲純html在這裏可以正常工作嗎?和chtml僅用於交易形式和鏈接? – Junaid 2012-04-26 12:15:25

+2

我不是一個親在yii和不久前使用它,但是,是的,我在大多數情況下使用普通的HTML像你描述和使用chtml只是爲了形式,也許一些其他情況下,現在不記得例子,對不起。讓我們等待答案,也許有人有更多的要告訴 – llamerr 2012-04-26 12:17:47

回答

5

講起了CHtml ::鏈接( )。它的主要優點是可以通過傳遞一個數組作爲參數來指示控制器路由併發送一些獲取變量。假設你想去LivingController的eat()動作,變量爲'meal',其值爲'hamburgers'。它可以簡單地做這樣的:

> CHtml::link(array('LivingController/eat', 'meal'=>'hamburgers')); 

如果你只想表達這種使用<a></a>,然後我不需要告訴你這將是多麼困難得多是。另外,我們應該記住,使用CHtml :: link()生成的鏈接將始終有效,即使您更改了url格式。 <a></a>不會發生這種情況:每次更改網址格式時,您都必須重寫網址。

CHtml :: image()的優點不太清楚,至少對我而言。真誠的,我認爲這只是一個封裝問題。

+0

+1好說.... – 2012-04-26 21:41:37

+1

哦,是的!對我來說現在URL格式化了。 YII的開發者實際上並不那麼愚蠢,以至於不能在這些課程上浪費時間;他們絕對有用。感謝ACG澄清:)讚賞! – Junaid 2012-04-27 05:04:49

+0

我使用創建鏈接創建鏈接http://www.yiiframework.com/doc/api/1.1/CController#createUrl-detail它做同樣的工作,這就是爲什麼我不記得爲什麼我需要chtml :: link 8) – llamerr 2012-04-27 08:34:19