在codeigniter

时间:2016-05-25 01:29:21

标签: php mysql codeigniter

我对codeigniter很新。我处于这样一种情况:我有两个表,他们之间有一对多关系。架构如下。一个是员工表,另一个是度假应用表

  

雇员(ID,姓名),

     

应用(ID,日期,结束日期,因此,USER_ID),

计划是在显示start_date,end_date,reason and name的单个页面中显示所有应用程序。查询application表我有一个管理员控制器,因为只有管理员可以查询application表。那里是另一个从employee表中获取数据的userController。在admin模型中,我有以下查询来获取所有应用程序

class Adminmodel extends CI_Model{
  public function fetchAllRequest(){
    $q=$this->db->get('application');
    if($q->num_rows()){
       return $q->result_array();
    }else{
       return false;
    }

   }

管理员控制器如下:

 class Admin extends CI_Controller{

         public function index(){
             $this->load->model('Adminmodel');
             $data['request']=$this->Adminmodel->fetchAllRequest();
             $this->load->view('admin/index',$data);
         }

   }
    }
它给我带来了这样的结果:

Array ( 

     [0] => Array ( 

         [id] =5 

         [start] => 05/04/2016 

         [end] => 05/12/2016 

         [reason] => sick [status] => Pending 

         [employee_id] => 1

我正在给出一行。可能有数百个应用程序。我的问题是我需要从每一行获取employee_id并将其用于 从员工表中获取名称。 < /强>

一个解决方案是我可以遍历视图中的foreach循环中的每一行,对于每个行,我都会调用用户模型传递员工ID并获取数据。 < / p>

如果我这样做 我需要在“VIEW”中使用用户模型,这不是MVC方法。如何解决这个问题 。谢谢!!

1 个答案:

答案 0 :(得分:1)

在CI 2中:选中加入 https://www.codeigniter.com/userguide2/database/active_record.html#select

在CI 3中:检查加入 http://www.codeigniter.com/user_guide/database/query_builder.html#selecting-data

您可以通过employee.id与application.user_id

一起加入这两个表
$this->db->select('*');
$this->db->from('application');
$this->db->join('employee', 'employee.id = application.user_id');
$query = $this->db->get();