新的codeigniter如此不确定路线。 我有一个用户登录他们的仪表板,他们可以添加联系人。这些联系人显示在他们的仪表板上,但是到目前为止它显示了不同用户的联系人,而不是基于他们的会话只针对当前用户ID ..我的会话设置正确,因为当用户添加联系人时它被添加用他们当前的ID ..我只是不确定如何编辑表格来显示特定的记录
控制器
function getDisplayUsersTable()
{
$this->load->model('Contacts_model');
$this->load->library('table');
$this->table->set_heading('Check', 'Contact ID','Fullname', 'Email', 'Country', 'Gender', 'Users_ID');
$style = array('table_open' => '<table class="table table-bordered table-hover">');
$this->table->set_template($style);
$contacts = $this->Contacts_model->getUsers()->result_array();
$tableData = '';
foreach($contacts as $contact) {
array_unshift($contact, '<input type="checkbox" label="check">');
$this->table->add_row($contact);
}
// generate table from query result
return $this->table->generate();
}
&#13;
模型
class Contacts_model extends CI_Model{
Public function AddContact($data){
$query=$this->db->insert('contacts',$data);
}
function getUsers()
{
return $this->db->get('contacts');
}
&#13;
查看
<div>
<?php
echo $contacttable;?>
</div>
&#13;
答案 0 :(得分:1)
您需要在模型中使用WHERE:
function getUsers($user_id)
{
return $this->db->get_where('contacts', array('user_id' => $user_id))->result_array();
}
并在控制器中:
$contacts = $this->Contacts_model->getUsers($this->session->user_id);
答案 1 :(得分:0)
您需要模型方法来查找与用户相关的联系人。我在这里做了一些假设,但它可能是这样的
function getUsersContacts()
{
//assuming 'userID' is the name of the session item and
//that 'id' is the name of the field in the contacts field
$id = $this->session->userID;
//return results from the model
return $this->db
->get_where('contacts', array('id' => $id))
->result_array();
}
get_where()
将get()
和where()
查询构建器方法合并为一个。
IMO,模型应该返回查询中的数据,而不仅仅是控制器用来检索数据的CI_DB_result
对象。考虑到这一点,控制器然后使用此代码。
$contacts = $this->Contacts_model->getUsersContacts();
答案 2 :(得分:0)
我使用模型中的会话来匹配数据库表中的内容,就像我在函数中应该使用的那样
public function getContacts()
{
$username = $this->session->userdata('username');
$this->db->where('username', $username);
$this->db->order_by('date_added', 'desc');
$query = $this->db->get('contacts');
if ($query->num_rows() > 0) {
return $query->result();
} else {
return false;
}
}