2012-03-28 53 views
0

我正在學習Yii框架的過程。我一直在關注thisYii框架教程 - 找不到文件

教程。我已經遵循了所有的步驟,並通過索引頁面加載。在我的index.php頁面我點位於

保護/視圖/消息

以下是我的index.php位於上述消息文件夾中的代碼的其他兩頁。

<html> 
<body> 
    <h1>Welcome</h1> 
    <p> To view our message go to... <?php echo CHtml::link('Here', '/message/show')?> </p> 
    <p> To edit our message go to... <?php echo CHtml::link('Here', '/message/edit')?> </p> 
</body> 
</html> 

「消息」是我在通過yii shell應用程序生成模型和控制器時給出的ID。

的問題是,上述頁面加載後,我點擊上面的網址中的任何一個,它指向

「本地主機:8080 /消息/節目」

「本地主機:8080 /消息/編輯」

,而這些文件的實際位置是

「本地主機:8080 /測試/保護/視圖/消息/ ...」

什麼可能我是做錯了什麼?

+0

我認爲你需要了解更多關於MVC的哲學 - http://stackoverflow.com/questions/8553988/mvc-books-tutorials-about-php – 2012-03-28 07:26:43

回答

2

你必須使用一個array()作爲第二個參數:

<?php echo CHtml::link('Here', array('/message/show'))?> 

檢查normalizeUrl去了解它。乾杯。

+0

謝謝:)所以無論何時數據類型是「混合」我使用數組? – 2012-03-29 17:16:22

+0

文檔中的「混合」表示參數可以是「字符串」或「數組」。因此,無論何時您想調用控制器的操作,最好使用和array('controller/action')而不是簡單的字符串'controller/action'來避免路由中的衝突。 – Puigcerber 2012-03-29 18:14:56

+0

再次感謝...... @Puigcerber還有一個問題。這些可能的衝突是什麼? – 2012-04-02 06:09:52

2

剛剛閱讀Yii tutorial,這真的很好。 關於URL Managment的主題適合您的問題,您可以找到答案。 (順便說一下,Yii只有一個入口點 - index.php,沒有直接訪問'protected'文件夾中的文件,'protected'文件夾必須受到保護:) urlManager爲路由請求做了特殊工作)

+0

謝謝!所以訪問任何其他頁面都必須通過框架來處理? – 2012-03-29 17:17:03

+0

+1用於指向URL管理鏈接 – nepsdotin 2012-06-14 07:02:31