【问题标题】:Codeigniter - views in subfolders routesCodeigniter - 子文件夹路由中的视图
【发布时间】:2014-09-05 18:40:44
【问题描述】:

出于组织目的,我需要在我的视图目录中有子文件夹。例如管理登录/注册: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 中看到控制器名称。这可能吗?或者是拥有一个用于登录的控制器、一个用于注册的控制器、一个用于更改密码的控制器等的最佳方法?这似乎有点过分了。我希望将我的文件很好地组织到相关目录中,因为这是一个非常大的网站的一部分。

【问题讨论】:

    标签: php codeigniter codeigniter-routing


    【解决方案1】:

    这里根本不需要路由。

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

    例如,您用于登录的控制器名称如下

    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
    

    【讨论】:

    • 谢谢@Zeeshan。也许我一开始解释得不够好。请参阅上面的编辑。
    • 哇,这么简单,呵呵!谢谢。
    • 请帮忙检查我的问题stackoverflow.com/questions/39360697/…
    • @SaggyManateeAndSwanFolk 您能否链接或提及您的具体问题。所以,我可以帮忙。
    猜你喜欢
    • 2017-08-07
    • 1970-01-01
    • 2011-07-09
    • 2013-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-25
    • 1970-01-01
    相关资源
    最近更新 更多