对于CI系统,我有一个经销商表和用户表。每个用户都通过名为 KEY 的字段映射到其代理商,该字段是唯一字符串。在用户表和经销商的表中,每个用户(记录)都有一个映射到它的经销商密钥。我希望你理解这个概念。现在我想为管理员创建一个视图。目前我显示reseller
列表和用户列表,现在如何创建一个视图,当我点击reseller
时,我只能看到他的经销商?
这里我在index
函数中获取所有代理商如何基于密钥
public function index ()
{
$usertype=$this->session->userdata('usertype');
if($usertype ==="admin")
{
// Fetch all users
$this->data['users'] = $this->reseller_m->get();
// Load view
$this->data['subview'] = 'admin/reseller/index';
$this->load->view('admin/_layout_main', $this->data);
}
else
{
$this->load->view('permission');
}
}
答案 0 :(得分:2)
您可以像这样使用CI active records
$this->db->select('*');
$this->db->from('reseller');
$this->db->join('users', 'reseller.KEY = users.KEY');
$this->db->WHERE('reseller.key',$reseller_id);
$result = $this->db->get();
只需将结果输入更改为视图即可。在第一页上,您传递了所有用户结果的结果,因此,如果用户点击特定的经销商,那么基本上您必须将经销商ID传递给控制器,对吧?使用该id只需通过if else条件将查询结果切换到视图。
public function index ()
{
$usertype=$this->session->userdata('usertype');
$reseller_id=$this->input->get('reseller_id');
if($usertype ==="admin")
{
if($reseller_id){
// Fetch only resellers users
$this->db->select('*');
$this->db->from('reseller');
$this->db->join('users', 'reseller.KEY = users.KEY');
$this->db->WHERE('reseller.key',$reseller_id);
$this->data['users'] = = $this->db->get();
}else{
// Fetch all users
$this->data['users'] = $this->reseller_m->get();
}
// Load view
$this->data['subview'] = 'admin/reseller/index';
$this->load->view('admin/_layout_main', $this->data);
}
else
{
$this->load->view('permission');
}
}
答案 1 :(得分:1)
这个怎么样?
// Fetch all users
$this->data['users'] = $this->get('users');
foreach($this->data['users'] as $ind=>$row){
// then connect resellers to each user
$this->data['users'][$ind]['resellers'] = $this->reseller_m->->where('key', $row['id'])->get();
}
首先,您将所有用户都添加到阵列并连接到其经销商的每个用户。我希望你已经定义了" reseller_m"作为模型和方法,其中我编辑的()现在只指定用户的收件人。
或者这行我会这样做:(没有定义模型)
$this->data['users'][$ind]['resellers'] = $this->where('key', $row['id'])->get('resellers');