Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 方法从两个不同的控制器调用Codeigniter 3_Php - Fatal编程技术网

Php 方法从两个不同的控制器调用Codeigniter 3

Php 方法从两个不同的控制器调用Codeigniter 3,php,Php,我正在使用代码点火器3 这是我的管理员控制器,在这里我将一条记录插入表人员: class Admin extends CI_Controller { public function __construct() { parent::__construct(); } public function addpeople() { insert in into people values('','pramod','emp0784'); }

我正在使用代码点火器3

这是我的
管理员
控制器,在这里我将一条记录插入表
人员

class Admin extends CI_Controller {

    public function __construct() {
        parent::__construct();

    }
    public function addpeople() {
        insert in into people values('','pramod','emp0784');
    }
}
这是另一个控制器,我在其中执行与
管理员
控制器相同的操作,但它写入相同的代码两次。
我想在
员工
控制器中重用代码:

class Employee extends CI_Controller {

    public function __construct() {
        parent::__construct();

    }
    public function addpeople() {
       insert in into people values('','pramod','emp0784');
    }
}
我发现的另一种方法是在
Employee
中重定向(../admin/addpeole),但它会更改URL

是否有其他方法可以在不更改URL的情况下重用
员工
控制器中的
管理员
控制器中的相同代码?

尝试此方法 在core中创建一个名为
MY_Controller.php
的文件,并从CI_Controller进行扩展

<?php
if (!defined('BASEPATH'))
    exit('No direct script access allowed');
class Admin_Controller extends CI_Controller {
    public function __construct() {
        parent::__construct();          
    }       
    public function addpeople() {
         insert in into people values('','pramod','emp0784');
    } 
}
?>

控制器不应直接与数据库通信,应使用模型与数据库通信,控制器应与模型通信,然后直接或通过视图发送输出

您可以在
应用程序/models
下创建一个模型。您必须为它指定一个与控制器不冲突的名称,以便大多数人添加后缀
\u model
\u m

e、 g:
application/models/Employees\u model.php

它应该扩展CI_模型,代码应该是这样的

class Employees_model extends CI_Model {
   public function add_employee($data) {
     // insert code goes here
   }
]
然后在控制器中加载模型并向其发送$数据以创建员工

class Employees extends CI_Controller {
   public function create () {
       $this->load->model('employees_model');
       $this->employees_model->add_employee($this->input->post());
   }
}

学习如何使用模型。。此插入应该发生在您的模型中,您可以从不同的控制器调用相同的模型。。
class Employees extends CI_Controller {
   public function create () {
       $this->load->model('employees_model');
       $this->employees_model->add_employee($this->input->post());
   }
}