CodeIgniter调用另一个控制器的受保护方法

时间:2013-06-26 16:52:08

标签: php codeigniter

我的Codeigniter项目有两个类:用户和个人资料

用户:

class Users extends CI_Controller 
{
   ...

配置文件:

class Profiles extends CI_Controller 
{
   protected function create_user_profile()
   {
      ....
   }
   ...

当用户控制器创建用户时,应立即创建配置文件。因此,用户中的函数必须调用create_user_profile函数。现在我的问题是:

如果我公开create_user_profile,可以通过网址拨打电话。但如果我保护它,那么如何从用户控制器调用它?

有没有比将create_user_profile从个人档案控制器移动到用户控制器更好的方法?

2 个答案:

答案 0 :(得分:2)

尝试制作个人档案库:

库/ profiles.php

class Profiles 
  {
    protected $CI;

    public function __construct()
    {
      $this->CI =& get_instance(); // Existing Code Igniter Instance
    }

    public function create_user_profile()
    {
      // Your Code Here
      // can communicate back with CI by using $this->CI
      // $this->CI->load->view(....);
      // $this->CI->load->model(...);
      // ETC
    }
  }

控制器/ users.php

class Users extends CI_Controller 
  {
    public function my_function(){
      $this->load->library('profiles');
      $this->profiles->create_user_profile();    
    }
  }

答案 1 :(得分:0)

将它放在另一个非Web控制器类中。然后你可以从任何地方重复使用它。