2012-07-25 67 views
1

如何在Code Igniter中進行簡單導航?我一直在跳過所有這些僞文件夾。最初我正在尋找通過文件夾挖掘出的東西,並抓取所有文件名,然後將它們放入數組中,以將它們排序到導航欄中。codeIgniter導航基礎知識

問題是,CI似乎在每個頁面中使用公用函數作爲僞文件夾。比如「public function aboutme()」可以解析爲xxx.xxx.xxx.xxx/index.php/[classname]/aboutme。這對我造成了一個問題,因爲在製作像test這樣的鏈接時,可以解決xxx.xxx.xxx.xxx/[classname]/contactme。

有沒有更好的,動態的方式來製作導航欄而不使用數據庫?我可以使用數據庫,但我試圖學習CI,因爲我已經熟悉MySQL,我想找到一種方法來做到這一點。

+0

* CodeIgniter *爲每個頁面提供僞路徑方案。我發現在開發我的應用時非常方便,因爲我選擇的路徑是* [verb]/[object] *,例如'edit/selection'和'view/user'。你沒有義務使用它。您可以輕鬆地重做或覆蓋該配置項的部分。 – wallyk 2012-07-25 18:08:25

+0

有沒有辦法得到一個類的數組及其各自路徑? – 2012-07-25 18:16:13

回答

1

也許自定義路線會幫助你?

http://codeigniter.com/user_guide/general/routing.html

我不知道你的應用程序的結構,但如果你正在使用多個控制器,它不會真正幫助並沒有一個真正的簡單的方法來做到這一點「自動地」。最好的辦法是想出一些方法來管理導航項目,比如數據庫(如你所說)。

如果您只使用一個類,則可以在該類上使用PHP的get_class_methods()

$pages = get_class_methods('classname'); 

foreach($pages as $page) 
{ 
    echo anchor($page, ucfirst($page)); 
} 

這是做一個非常簡單的方法,你就會有過濾掉私有方法和__construct方法爲好。

+0

在這種情況下,每頁都有一個標題,正文和頁腳。每個頁面都是由類中定義的公共函數自動生成的。我發現它*有點難以相信CI不會保留類中包含的函數緩存以及每個函數各自的僞位置 - 或者如果它不保留記錄,它不知道多重功能存在。 但我可能是錯的,我只做了一天。 – 2012-07-25 18:22:10

+0

那麼,你只使用一個班級嗎? – Brendan 2012-07-25 18:37:37

+0

Class [classname]擴展CI_Controller,然後創建頁面的各種公共函數。我還沒有找到製作多個類的理由,只是在類中有多個函數。 – 2012-07-25 18:56:28