2013-07-30 156 views
2

我在子文件夾中有一個控制器。 CodeIgniter提供了404頁面未找到。子文件夾中的CodeIgniter控制器

控制器在根控制器文件夾中正常工作。控制器也可以在第一級子文件夾中正常工作。控制器在第二級子文件夾中中斷。

爲什麼CodeIgniter 不是希望你用戶多個子文件夾?

實施例:

作品:controllers/pages/HomeController.php

斷裂:controllers/pages/users/HomeController.php

我的路由是這樣的:

作品:$route['default_controller'] = "pages/HomeController";

斷裂:$route['default_controller'] = "pages/users/HomeController";

+0

發現這個帖子:http://stackoverflow.com/questions/13240111/codeigniter-2-not-allowing-multiple-level-subfolders-for-controllers 似乎愚蠢的CI只能讓你去1級。 –

回答

8

我之前寫了一篇關於這一點,你只需要閱讀CI手冊,但這裏是一個快速的博客條目我確實應該讓你回到正軌:

http://blog.biernacki.ca/2011/12/codeigniter-uri-routing-issue-with-controller-folders/

例子:

$route['account/manage/(:num)/(:any)'] = "account/manage/index/$1/$2"; 
+0

我看了你的帖子,我不清楚你是在命名你的實際控制器對象。它是「管理」?然後在管理你手動重新路由到你想要的控制器? –

+1

爲什麼CI不允許多級子文件夾? –

+0

控制器被稱爲'管理'它是在那裏後... ...?沒有什麼是'不允許'它只需要被正確路由,因爲默認是'controller/method/values',上面的例子是'folder/controller/method(index)/ value/value'(right手邊) – Jakub

0

CodeIgniter本身並不允許多個控制器文件夾。它可能會或可能不會工作,但它是一個無證的怪癖。使用routes.php文件,您可以虛擬化您想要的任何文件夾或控制器結構,只需注意將路由映射回Controllers文件夾中的控制器和方法。

相關問題