gpt4 book ai didi

php - 在 codeigniter 中将查询保留在 "VIEW"之外

转载 作者:行者123 更新时间:2023-11-28 23:30:39 24 4
gpt4 key购买 nike

我是 codeigniter 的新手。我有两个表,它们之间有一对多的关系。模式如下。一个是员工表,另一个是休假申请表

employee(id,name),

application(id,start_date,end_date,reason,user_id),

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

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

}

管理 Controller 如下:

 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 并使用它从员工表中获取姓名。

一个解决方案是我可以在 View 内的 foreach 循环中遍历每一行,我为每一行调用传递员工 ID 的用户模型并获取数据。

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

最佳答案

在 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();

关于php - 在 codeigniter 中将查询保留在 "VIEW"之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37426417/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com