带有独立控制器的 Codeigniter 3 url 路由
Codeigniter 3 url route with independent controllers
我使用 Codeigniter 创建了一个 Web 应用程序,但我在 url、控制器和结构级别遇到了问题。
我的网站结构如下。
http://projectroot/admin
然后我有几个部分,例如:
http://projectroot/admin/users
http://projectroot/admin/profile
http://projectroot/admin/section_tracking
http://projectroot/admin/section_products
etc...
我正在使用会话和其他库
目前我在一个名为 Admin 的控制器中拥有所有内容,但我想创建独立的控制器来调用 url.
的每个部分
在管理员中我有:
class Admin extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->library('form_validation');
$this->load->library('My_PHPMailer');
$this->load->library('session');
}
public function index(){
if($this->session->userdata('login')){
if($this->session->userdata('urlnow')){
$url = $this->session->userdata('urlnow');
redirect($url);
}else{
redirect('admin/index');
}
}else{
$data = array();
$data['usererror'] = $this->session->flashdata('usererror');
$data['passerror'] = $this->session->flashdata('passerror');
$data['message'] = $this->session->flashdata('message');
$this->load->view('admin/index', $data);
}
}
...
public function users() {
code....
}
public function profile() {
code....
}
public function section_tracking() {
code....
}
public function section_products() {
code....
}
我的想法是控制器文件夹包含这样的东西:
admin.php
users.php
profile.php
section_products.php
section_visits.php
创建独立的 Admin 将 类(用户、个人资料、section_tracking 和 section_products)扩展为 admin 之外的独立控制器,其结构类似于:
users.php
class Users extends Admin {
public function __construct() {
parent::__construct();
$this->load->library('form_validation');
$this->load->library('My_PHPMailer');
$this->load->library('session');
}
public function index(){
code here...
}
}
profile.php
class Profile extends Admin {
public function __construct() {
parent::__construct();
$this->load->library('form_validation');
$this->load->library('My_PHPMailer');
$this->load->library('session');
}
public function index(){
code here...
}
}
我该怎么做?我不想使用 HMVC,我只想使用 MVC 本机。
谢谢
在您的 application/controllers/admin 文件夹中...制作以下文件
Admin.php
Users.php
Profile.php
Section_products.php
Section_visits.php
然后像这样调用每个文件...
http://projectroot/admin/users
http://projectroot/admin/profile
http://projectroot/admin/section_tracking
http://projectroot/admin/section_products
etc...
这里您想通过扩展 application/core
中的 CI_Controller
来扩展 admin
controller.so 使 Admin_controller.php
。您的“管理员”控制器必须是这样的....
class Admin_controller extends CI_Controller
{
function __construct()
{
parent::__construct();
}
}
然后总是扩展Admin_controller
。CI_Controller
自动扩展。
我使用 Codeigniter 创建了一个 Web 应用程序,但我在 url、控制器和结构级别遇到了问题。
我的网站结构如下。
http://projectroot/admin
然后我有几个部分,例如:
http://projectroot/admin/users
http://projectroot/admin/profile
http://projectroot/admin/section_tracking
http://projectroot/admin/section_products
etc...
我正在使用会话和其他库
目前我在一个名为 Admin 的控制器中拥有所有内容,但我想创建独立的控制器来调用 url.
的每个部分在管理员中我有:
class Admin extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->library('form_validation');
$this->load->library('My_PHPMailer');
$this->load->library('session');
}
public function index(){
if($this->session->userdata('login')){
if($this->session->userdata('urlnow')){
$url = $this->session->userdata('urlnow');
redirect($url);
}else{
redirect('admin/index');
}
}else{
$data = array();
$data['usererror'] = $this->session->flashdata('usererror');
$data['passerror'] = $this->session->flashdata('passerror');
$data['message'] = $this->session->flashdata('message');
$this->load->view('admin/index', $data);
}
}
...
public function users() {
code....
}
public function profile() {
code....
}
public function section_tracking() {
code....
}
public function section_products() {
code....
}
我的想法是控制器文件夹包含这样的东西:
admin.php
users.php
profile.php
section_products.php
section_visits.php
创建独立的 Admin 将 类(用户、个人资料、section_tracking 和 section_products)扩展为 admin 之外的独立控制器,其结构类似于:
users.php
class Users extends Admin {
public function __construct() {
parent::__construct();
$this->load->library('form_validation');
$this->load->library('My_PHPMailer');
$this->load->library('session');
}
public function index(){
code here...
}
}
profile.php
class Profile extends Admin {
public function __construct() {
parent::__construct();
$this->load->library('form_validation');
$this->load->library('My_PHPMailer');
$this->load->library('session');
}
public function index(){
code here...
}
}
我该怎么做?我不想使用 HMVC,我只想使用 MVC 本机。
谢谢
在您的 application/controllers/admin 文件夹中...制作以下文件
Admin.php
Users.php
Profile.php
Section_products.php
Section_visits.php
然后像这样调用每个文件...
http://projectroot/admin/users
http://projectroot/admin/profile
http://projectroot/admin/section_tracking
http://projectroot/admin/section_products
etc...
这里您想通过扩展 application/core
中的 CI_Controller
来扩展 admin
controller.so 使 Admin_controller.php
。您的“管理员”控制器必须是这样的....
class Admin_controller extends CI_Controller
{
function __construct()
{
parent::__construct();
}
}
然后总是扩展Admin_controller
。CI_Controller
自动扩展。