我正在使用Codeigniter:我有两个控制器。他们使用不同的模型。他们没有任何共同之处。控制器1是一个登录控制器,如果我的登录凭据正确,它会将我引导到安全页面。我只想让Controller 2:只加载这个页面的中间部分,就是这样。为什么CI很难做到这一点?
+-------------------------------------------------------+
|View "Home_Page" |
+--------------------------------------------------------
| TOP: |
|Controller 1: function checklogin(){} loads this part |
| |
--------------------------------------------------------+
|Middle: |
|Controller 2: function content(){ } loads this part |
| |
--------------------------------------------------------+
|Bottom: |
|Controller 1: function checklogin(){} loads this part |
| |
--------------------------------------------------------+
答案 0 :(得分:2)
回答你的问题。
因为CI不是为了做这种事而开发的吗?
不是MVC的东西?控制器不调用控制器,模型不调用控制器,视图不调用控制器,控制器调用所需的一切,只调用控制器的是路径。
如果您想要了解类似的功能,请阅读HMVC / Modular separation。
无论如何,这是不好的做法,考虑将你的代码重组为MVC并停止尝试让CodeIgniter做它本不该做的事情。
Things to read about MVC and what models are for.
控制器1
public function index() {
$this->load->view("header");
$this->load->view("top");
$this->load->view("middle");
$this->load->view("bottom");
}
控制器2
public function index() {
$this->load->view("header");
$this->load->view("middle");
}
答案 1 :(得分:0)
我认为你需要母版页
参考this
答案 2 :(得分:0)
有几个auth库可以正常工作,但它们不能以这种方式运行。
通常,CI中的流程为:
Request -> Front Controller
-> Route
-> Controller
[-> Auth Library
[-> Auth Model]
]
-> Display View
括号表示可选组件。
控制器将运行身份验证代码,无论是库中的控制器还是其他方法,然后根据结果显示视图或重定向用户。
我个人使用Tank Auth,但还有很多其他的可用作身份验证库。