[英]CodeIgniter not working with multiple level subfolders for both controllers and views
[英]Codeigniter - views in subfolders routes
出于组织目的,我需要在我的views目录中包含子文件夹。 例如,用于管理登录/注册: views/login_reg/login.php
和views/login_reg/register.php
。
在我的URI中要查看: www.mysite.com/login
或www.mysite.com/register
而不是www.mysite.com/login_reg/login
。
我已经尝试了以下路线:
$route['(:any)/login'] = 'login_reg/login';
哪个不起作用。
编辑:
一个简单的例子进一步阐述:
//Controller: login_reg.php
class Login_reg{
function login(){
$this->load->view('login_reg/login');
}
function register(){
$this->load->view('login_reg/register');
}
}
//Routes:
$route['login_reg/(:any)'] = 'login_reg/$1';
所以我的URI看起来像这样: www.mysite.com/login_reg/login
或www.mysite.com/login_reg/register
因此,我希望一个控制器来管理所有与登录/注册相关的视图。 但是我不想在URI中看到控制器名称。 这可能吗? 还是拥有用于登录的控制器,用于注册的控制器,用于更改密码的控制器等的最佳方法? 这似乎有点过分。 我想将我的文件很好地组织到相关目录中,因为这是一个非常大的站点的一部分。
在这里,您根本不需要路由。
只需在加载视图时添加文件夹名称。
例如,您用于登录的控制器名称类似于
function login()
{
//code goes here
$this->load->view('login_reg/login');
}
和注册类似。
希望对您有所帮助。如有其他疑问,请随时告诉我。
-更新-
要隐藏控制器名称,请在route.php中像这样创建chanes;
$route['login'] = 'login_reg/login';
$route['register'] = 'login_reg/register';
并且您的网址现在会像这样:
http://yourwebsite.com/login
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.