Codeigniter - 子文件夹路径中的视图

时间:2014-09-05 18:40:45

标签: php codeigniter codeigniter-routing

出于组织目的,我需要在views目录中包含子文件夹。例如,用于管理登录/注册:views/login_reg/login.phpviews/login_reg/register.php

在我的URI中希望看到:www.mysite.com/loginwww.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/loginwww.mysite.com/login_reg/register

所以我希望一个控制器管理所有与登录/注册相关的视图。但我不想在URI中看到控制器名称。这可能吗?或者是拥有登录控制器,注册控制器,密码更改控制器等的最佳方法?这看起来有点过分了。我希望将我的文件组织到相关目录中,因为这是一个非常大的站点的一部分。

1 个答案:

答案 0 :(得分:1)

在这里,您根本不需要路由。

只需在加载视图时添加文件夹名称。

例如,登录的控制器名称就像

function login()
{
  //code goes here
  $this->load->view('login_reg/login');
}

和注册类似。

希望这会对你有所帮助。如果你进一步询问,请随时告诉我。

---更新---

在route.php中隐藏控制器名称make chanes,如下所示;

$route['login'] = 'login_reg/login';
$route['register'] = 'login_reg/register';

你的网址现在会这样:

http://yourwebsite.com/login