我如何创建登录控制器?笨

时间:2018-04-28 12:18:42

标签: php codeigniter authentication

我在使用codeigniter和MVC模型时遇到了一些麻烦。在我的网页中,我有一个main控制器,其功能可以处理具有不同视图home page,about,support...的常用导航菜单,但我有一个登录视图。

  1. 我不确定这种分离是否正确,或者我应该为每个视图创建一个控制器。
  2. 如何调用登录控制器,我正在使用base_url('main/myView/');来调用主控制器内的功能,但是如果我从登录视图base_url('login/foo');调用登录控制器则不起作用。
  3. 我是codeigniter的新手,我读了他们的教程,但我仍然不确定何时应该创建一个新的控制器。

    由于

2 个答案:

答案 0 :(得分:0)

Codeigniter有许多auth库。我确定使用这个库比写它更好。

  

Codeigniter 3.x Authentication Library?

     

https://github.com/benedmunds/CodeIgniter-Ion-Auth

     

https://github.com/jenssegers/codeigniter-authentication-library

答案 1 :(得分:-1)

您不需要为每个视图创建一个多控制器。你可以用一个控制器完成所有工作。

如果您需要另一个控制器,您可以创建一个新的控制器并在routes.php中分配它。现在,我正在创建2个控制器。请记住控制器名称以大写字母

开头
// pages controller
class Pages extends CI_Controller { // `application/controller/Pages.php`
    public function __construct(){
        parent::__construct();     
    }
    public function index(){
        // default_controller
    }
    public function about(){
        // pages/about
    }
    public function support(){
        // pages/support
    }
}

// admin controller
class Admin extends CI_Controller { // `application/controller/Admin.php`
    public function __construct(){
        parent::__construct();     
    }
    public function login(){
        // admin/login
    }
    public function logout(){
        // admin/logout
    }
}

application/config/routes.php

中将控制器分配给控制器
$route['default_controller'] = 'pages';   // call lowercase letter
$route['about'] = 'pages/about';
$route['support'] = 'pages/support';

$route['login'] = 'admin/login'; // call lowercase letter
$route['logout'] = 'admin/logout';

如果您致电base_url('login'),管理员控制器登录功能将起作用

如果你致电base_url('about'),关于功能的页面控制器将起作用