我有一个关于控制器的问题。让我们开始吧:
所以对于这个例子:
我有3个控制器:admin.php,company.php,usermanagement.php
我想要的是,将公司和管理控制器链接为管理员的孩子。因此,如果在浏览器上输入地址,它可能会显示:localhost / admin / company和localhost / admin / usermanagement
我配置了路线并且它很好但是当我输入“localhost / company”时它会加载我不想要的公司页面。我想将它们全部链接为管理页面的子项。
我将如何实现这一目标?
顺便说一句,这是我的代码片段:
admin.php - 控制器
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Admin extends CI_Controller {
function __construct(){
parent::__construct();
session_start();
}
public function index() {
$this->load->view('view_admin');
}
}
公司 - 与管理员相同
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Company extends CI_Controller {
function __construct(){
parent::__construct();
session_start();
}
public function index() {
$this->load->view('view_company');
}
}
谢谢, 詹姆斯
编辑:我尝试在admin.php上添加功能,如:
function company(){} function usermanagement(){}
但是我觉得它不是那么有效,因为当我尝试将我的原生php代码迁移到这个MVC架构框架中时,它将包含许多函数。
答案 0 :(得分:2)
如果您的问题是您喜欢路线的工作方式但不希望人们能够访问index.php / company /而宁愿他们访问admin / company,您可以随时这样做:
class Company extends CI_Controller {
public function __construct() {
parent::__construct();
if ( $this->uri->segment(1) != "admin" ) {
redirect('admin/company/'.$this->uri->segment(3));
}
}
...
虽然请记住,您可能需要一个更完整的URL形成方法,而不仅仅是添加$this->uri->segment(3)
,但一般模式就在那里。
答案 1 :(得分:0)
您可以在“admin”控制器中添加更多功能,因此,默认页面为:
public function index() {
$this->load->view('view_admin');
}
'子页面'是:
public function company() {
$this->load->view('view_company');
}
等等...