路由到 CodeIgniter 中的多个子文件夹
我在控制器目录中设置了一个管理文件夹,在该文件夹下有 3 个独立的子文件夹,其中包含控制器。
-- Controllers
---- Admin
------ Dashboard
-------- dashboard.php
-------- file.php
------ Members
-------- members.php
-------- file.php
------ Settings
-------- settings.php
-------- file.php
我尝试像这样在routes.php文件中路由它
$route['admin/(:any)/(:any)'] = 'admin/$1/$2';
$route['admin/(:any)'] = 'admin/$1/$1';
$route['admin'] = 'admin/index';
我该怎么做才能解决这个问题?
I have a admin folder set up in my controllers directory, under that i have 3 seperate sub-folders with controllers inside of them.
-- Controllers
---- Admin
------ Dashboard
-------- dashboard.php
-------- file.php
------ Members
-------- members.php
-------- file.php
------ Settings
-------- settings.php
-------- file.php
I tried routing it in the routes.php file like this
$route['admin/(:any)/(:any)'] = 'admin/$1/$2';
$route['admin/(:any)'] = 'admin/$1/$1';
$route['admin'] = 'admin/index';
What do I do to fix this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
该代码已经在互联网上,但我修改了它以使其适用于 codeigniter 2.1
请参阅此处的旧源代码:
http://glennpratama.wordpress。 com/2009/10/20/multi-level-subfolder-for-controller-in-codeigniter/
在 application/core 目录下新建文件 MY_Router.php,将以下代码复制到其中:
This code was already on the internet but i modified it to make it work for codeigniter 2.1
See the old source here:
http://glennpratama.wordpress.com/2009/10/20/multi-level-subfolder-for-controller-in-codeigniter/
Make a new file MY_Router.php in the application/core directory, copy the following code in it:
“开箱即用”codeigniter 不支持控制器目录中的多个子目录级别,仅支持一个。
有一种方法可以扩展路由类来支持这一点,请查看此博客条目。
"Out of the Box" codeigniter does not support multiple subdirectory levels in your controllers directory, just one.
There is a way to extend the routing class to support this, check this blog entry.
对于 Codeigniter 3.x 兼容性:自从放弃对 PHP 4 的支持以来,已弃用 EXT 常量的使用。不再需要维护不同的文件扩展名,并且在这个新的 CodeIgniter 版本 (3.x) 中,EXT 常量已被已删除。仅使用“.php”。
所以新的 MY_Router.php:
For Codeigniter 3.x compatibility: The usage of the EXT constant has been deprecated since dropping support for PHP 4. There’s no longer a need to maintain different filename extensions and in this new CodeIgniter version (3.x), the EXT constant has been removed. Use just ‘.php’ instead.
So the new MY_Router.php:
我遇到了
子目录
的4-5级
问题(例如/controllers/folder1/folder2/folder3/folder4/my-controller),并将while循环从它对
我有用。
上面的内容适用于
2-3 子目录
,但不适用于4-5 子目录
层次结构。I was facing problem with
4-5 levels
ofsub-directories
(like /controllers/folder1/folder2/folder3/folder4/my-controller) and change the while loop fromto
It works for me.
The above one is ok for
2-3 sub-directories
but not for4-5 sub-directory
hierarchy.