实际上我希望使用相同的应用程序处理我的网站/管理面板。所以我想知道那可能吗?
我的意思是这样的结构 http://www.mysite.com
并为管理员 http://www.mysite.com/admin
所以我需要处理一个codeignitor的应用程序。我不希望为此目的安装两个codeignitor。
答案 0 :(得分:3)
当然,您可以参阅CI文档中的部分说:
Running Multiple Applications with one CodeIgniter Installation
您还可以为控制器,模型和视图创建单独的文件夹,如:
+controllers
+front (main site controllers will go here)
+admin (admin controllers will go here)
+models
+front (main site models will go here)
+admin (admin models will go here)
+views
+front (main site views will go here)
+admin (admin views will go here)
参见以下部分:
答案 1 :(得分:0)
首先为前端和/或后端创建base controller。像这样:
// core/MY_Controller.php
/**
* Base Controller
*
*/
class MY_Controller extends CI_Controller {
// or MY_Controller if you use HMVC, linked above
function __construct()
{
parent::__construct();
// Load shared resources here or in autoload.php
}
}
/**
* Back end Controller
*
*/
class Admin_Controller extends MY_Controller {
function __construct()
{
parent::__construct();
// Check login, load back end dependencies
// Create and setup admin user session and other all dynamic admin url for image,js,css,etc..
}
}
/**
* Default Front-end Controller
*
*/
class Front_Controller extends MY_Controller {
function __construct()
{
parent::__construct();
// Load any front-end only dependencies
// Get user data of session and generate other all dynamic front url for image,js,css,etc..
}
}
后端控制器将扩展Admin_Controller,前端控制器将扩展Front_Controller.Now您可以创建任何管理端控制器&模型并扩展到Admin_Controller,前端扩展到Front_Controller。
E.g(任何管理员控制器):
class Admin extends Admin_Controller{
function __construct(){
parent::__construct();
}
}
E.g(任何前端控制员):
class Home extends Front_Controller{
function __construct(){
parent::__construct();
}
}
在需要的地方使用URI routing,并为前端和后端创建单独的控制器。如果前端和后端控制器都位于同一个应用程序中,则可以共享所有帮助程序,类,模型等。