2011-05-06 24 views
1

我的控制器和方法映射到段和頁面,所以我使用它來突出顯示當前導航項和顯示頁面模板(通過$ this-> router-> class。 )。但我已經打有點問題的,我對醫生的測試結果如下結構:代碼點火器:基於當前控制器/方法的導航和模板問題

website.com/doctor/results/ 

所以一個「醫生」控制器具有加載結果的頁面列表的方法「結果」。都好。

但是,列出的每個結果旁邊都有一個鏈接,即「查看詳細信息」以顯示該測試的詳細信息。在功能上,單擊此鏈接可將您帶到具有自己的方法「視圖」的「測試」控制器,以顯示特定測試的詳細信息頁面。但顯然你應該仍然在'醫生'部分,'結果'部分。

我不知道如何實現?而沒有重新思考整個導航(直到現在看起來相當不錯)。

回答

0

常見的方式做,這是使用route

在文件/application/config/routes.php中,添加這個rou TE:

$route['doctor/test-results/(:any)'] = 'test/view/$1'; 

哪裏test-results是你想要的網址段爲(頁面,你會鏈接到)什麼的。

這基本上說:

的任何URL,它是doctor/test-results/something應該真正加載test/view/something

你可以做相當多的與路線。瞭解更多關於在User Guide

路由如果您發現$this->router->class/method不工作的,先嚐試從URI Class

+0

由於某些功能試驗。嗯,也許我應該使用URI類來代替(段)來確定模板和當前導航。我嘗試了上面的路由解決方案的例子,但是'$ this-> router-> class;'仍然返回'test'?而不是醫生。雖然我可能錯過了一些東西! – gio 2011-05-06 23:06:52

+0

感謝您指出了x2。 – gio 2011-05-07 06:05:16

0

您可以在您的控制器目錄中創建一個名爲「doctor」的子目錄,然後使用「result」作爲您的控制器名稱。

要顯示所有結果,您將使用主要的「index()」方法。然後你可以有另一個方法調用「test()」來顯示你的測試。

例子:

目錄結構:然後

application/controllers/doctor/results.php 

你results.php文件會像這樣:

function index() 
{ 
// all results here 
} 

function test() 
{ 
// test result display here 
}