2012-02-08 95 views
0

我有一個關於在codeigniter中設置路由規則的問題。 在包含在框架文件中的基本教程歡迎,默認路由是codeigniter的路由規則設置

$route['default_controller'] = "welcome"; 

即與類名「歡迎」位於在控制器文件夾中的文件,並且welcome_view.php是位於視圖中。但是,如果我在控制器文件夾中創建一個新文件夾並將其命名爲Welcome,那麼將welcome.php移動到它?然後我在視圖中做同樣的事情(創建一個名爲Welcome_view的文件夾,然後將welcome_view.php移入它)。 default_controller的路由是什麼?非常感謝你。

回答

0

在這種情況下(歡迎的welcome.php文件夾中),路線將是:

$route['default_controller'] = "welcome/welcome"; 

CI使得試圖該路由映射爲folder[/subfolders]如果在第一犯規匹配規則圖案控制器/方法,在拋出show_404()錯誤之前。
當然,上面的路由將在Welcome文件夾內的Welcome類上調用index()方法,假設您在控制器文件夾中沒有直接的歡迎類。

同樣適用於訪問量:

$this->load->view('welcome/welcome'); 

它取了views/welcome/文件夾中的文件的welcome.php:如果你想映射到一個子文件夾內的視圖,你調用它。

1

的確,您可以在控制器文件夾內添加文件夾。這涵蓋在CodeIgniter Documentation。如果您選擇遵循這是正常的看法相同的約定$route['default_controller'] = "Welcome/welcome";

,但它不是一個要求:

你會改變路線。你仍然可以留下您的看法它是使用加載:

$this->load->view('welcome');

否則,如果你遵循相同的慣例和子文件夾它,你會叫:

$this->load->view('welcome/welcome');

+0

但更重要的是,你爲什麼要這樣做?它會在你的URL中看起來非常醜陋,並且CodeIgniter會努力尋找語義URL。有可能有更好的方法來實現你的嘗試。也許你可以給更多的信息。 – 2012-02-08 06:33:54

+0

你可以編輯你的帖子,而不是給自己添加評論。如果您需要 – PiTheNumber 2012-02-08 07:47:21

+0

@PiTheNumber,請用**更新**來標記它 - 我在提問者的回覆中提出了一個問題,在評論中比在答案中更有保證。我不認爲應該用問題回答問題,海事組織。 – 2012-02-08 07:56:03