Php 方法从两个不同的控制器调用Codeigniter 3
我正在使用代码点火器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'); }
管理员
控制器,在这里我将一条记录插入表人员
:
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());
}
}