Codeigniter:从两个数据库表中的helper传递数据库


Codeigniter: Passing databa from helper from two database tables

所以基本上我有一个助手-

function records()
{        
  $ci = get_instance();                     
  $ci->db->order_by("date", "desc");
  $ci->db->limit(20);
  $query = $ci->db->get('records');
  $data =array();
  foreach($query->result_array() as $orders)
  {
     $data[] = $orders;
  }            
  return $data;
}   

我需要将数据从它传递到视图,但目前我只传递表记录中的数据。此外,在我从记录中获得$data[]后,我需要检查当前记录id,然后从另一个表(即用户)传递相同的$data[]所有用户详细信息。我该怎么做?所以基本上,我首先从记录中获取所有数据,检查记录是哪个用户,然后用get_where('users',array('id'=>$data['user_id'])搜索该用户;并将用户数据添加到新数组或相同的$data[]数组中。这可行吗?如果是,请给我举个例子。

我想你想加入吗?

  $ci->db->order_by("date", "desc");
  $ci->db->limit(20);
  $query = $ci->db->from('records')->join('users', 'records.user_id=users.id')->get();

http://codeigniter.com/user_guide/database/active_record.html

请确保修改查询以使用引用用户id的记录表中的正确字段名。不过以上注释是正确的-helpers绝对不是查询的地方。实际上,我想不出任何使用get_instance来获取助手中的CI对象的好例子,它们可能应该是独立于CI的函数。

首先;始终建议您将模型用于数据库操作。为了从模型中检索数据库信息,还建议您使用库。帮助程序可以用于您并不总是需要数据库的目的,如日期计算、搜索功能等。

第二;如果我理解得对的话,你将记录从一个表中提取到一个数组中,然后你想检查用户是否在该数组中有记录(或类似的东西),哪些用户详细信息来自另一个数据库?如果是,那么您可以简单地将所有记录获取到一个数组中,将用户详细信息(例如用户id)获取到另一个数组或变量中。剩下的部分是所有的数组操作。