Php 在CodeIgniter中使用抽象基控制器
我有一套控制器,只有当你是管理员(而不是普通用户)时才可以访问 因此,在每个控制器的构造函数中,我将执行以下操作:Php 在CodeIgniter中使用抽象基控制器,php,codeigniter,Php,Codeigniter,我有一套控制器,只有当你是管理员(而不是普通用户)时才可以访问 因此,在每个控制器的构造函数中,我将执行以下操作: public function __construct() { parent::__construct(); if (! is_admin()) { show_404(); } } 除了将此代码添加到每个管理控制器的构造函数中,还有更好的方法吗 我在想我可以创建一个名为Admin\u controller的基本控制器,它看起来像这样: p
public function __construct() {
parent::__construct();
if (! is_admin()) {
show_404();
}
}
除了将此代码添加到每个管理控制器的构造函数中,还有更好的方法吗
我在想我可以创建一个名为Admin\u controller
的基本控制器,它看起来像这样:
public class Admin_Controller extends CI_Controller {
public function __construct() {
//the above code goes here
}
}
然后我的所有其他控制器都可以扩展这个类,而不是CI\u Controller
类。唯一的问题是,我需要将此文件包含在其他控制器的顶部,否则CodeIgniter找不到Admin\u控制器
有更好的方法吗?我想你可以用
我也做了同样的事情,但我需要更精确的控制,所以我必须检查每个控制器。并非所有控制器都禁止单个用户使用。将其放在您的应用程序/核心文件夹:MY_Controller.php(注意大写字母的正确使用) 然后在您希望用户登录的所有普通控制器中
class Whatever extends MY_Controller
{
public function __construct()
{
parent::__construct();
}
}
谢谢。这很有效。然而,我怎么能有多个不同的基类来实现这个呢?例如,上面的类检查
是否为_admin()
。假设我想扩展另一个类,该类检查是否为_member()
?我也在搜索类似的东西。我有一堆具有许多类似操作的选项控制器,我想将一些代码干燥成一个抽象控制器。但是,这个答案中的方法只允许一个抽象控制器…不是很多。如果你想拥有多个基类,请尝试Phil Sturgeon的这篇文章:干杯,Bart@Swerk这正是我所需要的。非常感谢。
class Whatever extends MY_Controller
{
public function __construct()
{
parent::__construct();
}
}