[英]Codeigniter : how can i get user data by user_id
我对这个 codeigniter 还是很陌生。所以我的数据库中有一个名为users
表和t_lowongan
表的表。 t_lowongan
表将user_id
字段作为users
表中id_user
的外键。 因此,当用户登录并创建职位发布时, user_id
将由该用户的id_user
填充。 我想获取用户数据,以便该用户知道他创建了该用户的哪个职位发布,但数据没有显示,我该如何解决?
Controller Lowongan:
public function lowongan()
{
$this_id = $this->session->userdata('id_user');
$data['t_lowongan'] = $this->db->get_where('t_lowongan', ['user_id', $this_id])->result();
$this->load-view('lowongan', $data);
}
您的调试方法在这里不太正确。 首先,您必须了解数据库对象的result()
方法以$row->field
(或者在您的情况下$row->user_id
)的形式返回行对象数组。 另一方面,数据库对象的result_array()
方法返回 arrays 的数组(在您的例子中为 $row['user_id'])。 由于您已经使用了前者,我希望您已经在随后显示的lowongan
视图中相应地处理了这些行对象。 不这样做可能会导致您在问题中描述的问题。
假设您已经处理了视图,接下来要做的第二件事是放置一个error_log()
语句并查看它返回的值。 您可以在get_where()
语句之后放置类似这样的内容,然后观察您的 HTTP 服务器记录它获得的值:
error_log("THE RESULT IS: " . print_r($data, true));
根据这是否打印了正确的值,您可以进一步排查问题的确切位置。
您必须创建 controller 和 model 并从构造中调用 model
控制器:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class LowonganController extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->model(array('m_lowongan'));
}
public function lowongan() {
$id = $this->session->userdata('id_user');
$data['t_lowongan'] = $this->m_lowongan->get_user_by_id($id);
$this->load-view('lowongan', $data);
}
}
model:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class M_Lowongan extends CI_Model {
public function __construct()
{
parent::__construct();
}
public function get_user_by_id($id)
{
$this->db->where('user_id', $id);
$query = $this->db->get('your_table_name');
return $query->row_array();
}
}
所以我所做的就是那样。 我在我的 model 上创建了一个名为 get_data 的 function
model:
public function get_data($where, $table){
return $this->db->get_where($table, $where);
}
在 controller 中,我只是这样做:
Controller:
public function lowongan()
{
$this_id = $this->session->userdata('id_user');
$data['t_lowongan'] = $this->m_lowongan->get_data($where,'t_lowongan')->result();
$this->load-view('lowongan', $data);
}
它有效:D。 但是请让我知道这是否是错误的做法,谢谢:D
尝试这个
public function lowongan() { $this_id = $this->session->userdata('id_user'); $data['t_lowongan'] = $this->db->get_where('t_lowongan', ['user_id', $this_id])->row(); $this->load-view('lowongan', $data); }
在你看来
<?php print_r($t_lowongan)?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.