我在使用codeigniter和MVC模型时遇到了一些麻烦。在我的网页中,我有一个main
控制器,其功能可以处理具有不同视图home page,about,support...
的常用导航菜单,但我有一个登录视图。
base_url('main/myView/');
来调用主控制器内的功能,但是如果我从登录视图base_url('login/foo');
调用登录控制器则不起作用。 我是codeigniter的新手,我读了他们的教程,但我仍然不确定何时应该创建一个新的控制器。
由于
答案 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')
,关于功能的页面控制器将起作用