我已在我的核心文件夹中定义 MY_ Controller 。
然后我有两个控制器:
Admin_Controller
Customer_Controller
现在我想在我的Customer_Controller中添加一个查询,其结果是我可以访问扩展到Customer_Controllers的所有控制器。
我已将此代码放在Customer_Controller
中 public function get_users()
{
$id = $this->session->userdata('id');
$this->db->select('*');
$this->db->join('tenant','tenant.id = sites.tenant_id');
$this->db->where('tenant.id',$id);
$this->db->from('sites');
$query = $this->db->get();
$result = $query->result();
$sitedata = json_decode(json_encode($result));
$this->session->set_userdata($sitedata);
}
现在,当我有一个类似这样的孩子课时
<?php
class User extends Customer_Controller
{
public function__construct()
{
parent::__construct();
}
public function index()
{
//Get Results from Customer_Controller
}
}
怎么做?
答案 0 :(得分:2)
你可以这样说:
class Customer_Controller extends My_Controller
{
public function customer()
{
return 'costomers';
}
}
然后
class User extends Customer_Controller
{
//call the function from Customer_Controller
$this->customer();
}
答案 1 :(得分:1)
您在用户控制器
中尝试get_instance()
public function get_users()
{
$id = $this->session->userdata('id');
$this->db->select('*');
$this->db->join('tenant','tenant.id = sites.tenant_id');
$this->db->where('tenant.id',$id);
$this->db->from('sites');
$query = $this->db->get();
$result = $query->result();
$sitedata = json_decode(json_encode($result));
$this->session->set_userdata($sitedata);
return $result;
}
class User extends CI_controller
{
public function__construct()
{
parent::__construct();
}
public function index()
{
$CI=&get_instance();
$result=$CI->get_users();
foreach($result as $row)
{
echo $row->id;//here add you table field name for id
}
}
}
答案 2 :(得分:1)
我给你一个建议。为什么不创建一个库类,而不是创建一个控制器并扩展它。 然后将库加载到所需的控制器中。
例如,这是您的库类文件。
stirng mypath = stirng.Format("~/EmailStyle/TD-emailForCus.html");
using (StreamReader reader = new StreamReader(Server.MapPath(mypath)))
{
body = reader.ReadToEnd();
}
在你的控制器中
<?php
class users{
private $session;
public function __construct(){
$CI =& get_instance();
$this->session=$CI->session;
}
public function get_users()
{
// do the code and return the
}
}
答案 3 :(得分:1)
Codeigniter是MVC框架。 所以你将把get_users放在模型部分。 示例:您必须在models文件夹中创建custom_model.php。
<?php
class custom_model extends CI_Model {
function __construct()
{
parent::__construct();
}
public function get_users($id)
{
$this->db->select('*');
$this->db->join('tenant','tenant.id = sites.tenant_id');
$this->db->where('tenant.id',$id);
$this->db->from('sites');
$query = $this->db->get();
$result = $query->result();
return $result;
}
}
?>
下一步:重新制作custom_controller。
public function get_users()
{
$id = $this->session->userdata('id');
$this->load->model('custom_model');
$result=$this->cutom_model->get_users($id);
$sitedata = json_decode(json_encode($result));
$this->session->set_userdata($sitedata);
}
和下一步:
class User extends Customer_Controller
{
public function__construct()
{
parent::__construct();
}
public function index()
{
//
}
public function get_users(){
parent::get_users();
}