codeigniter 代码点火器:我如何通过user_id获取用户数据

tktrz96b  于 2023-01-15  发布在  其他
关注(0)|答案(3)|浏览(118)

我对这个codeigniter还是个新手,所以我的数据库中有两个表,分别叫users表和t_lowongan表,t_lowongan表中有user_id字段,作为users表中id_user的外键,所以当用户登录并创建一个招聘信息时,user_id将由来自该用户的id_user填充。我想获取用户数据,以便该用户知道他创建了该用户的哪个职位公告,但数据未显示,我如何修复它?
主计长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);
    }
fnatzsnv

fnatzsnv1#

您的调试方法在这里并不完全正确。首先,您必须理解数据库对象的result()方法以$row->field的形式返回行对象数组(在您的情况下,为$row->user_id)。另一方面,数据库对象的result_array()方法返回数组的数组(在您的例子中,是$row ['user_id'])。既然您使用了前者,我希望您已经在随后显示的lowongan视图中相应地处理了这些行对象。如果不这样做,可能会导致您在问题中描述的问题。
假设你已经处理好了视图,接下来要做的第二件事是放置一个error_log()语句,看看它返回了什么值,你可以在get_where()语句后面放置类似下面这样的语句,然后观察HTTP服务器日志它得到了什么值:

error_log("THE RESULT IS: " . print_r($data, true));

根据打印的值是否正确,您可以进一步查找问题的确切位置。

inn6fuwd

inn6fuwd2#

您必须创建控制器和模型,并从构造调用模型
同车:

<?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);
    }
}

型号:

<?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();
    }
}
cld4siwp

cld4siwp3#

我所做的就是在我的模型上创建一个函数get_data
模型:

public function get_data($where, $table){
        return $this->db->get_where($table, $where);
    }

在控制器中,我只需执行以下操作:
主计长:

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

相关问题