我对这个代码编写器还是很陌生的。所以我有一个表在我的数据库叫users
表和t_lowongan
表。t_lowongan
表有user_id
字段作为users
表中id_user
的外键。因此,当用户登录并创建招聘启事时,user_id
将由该用户的id_user
填充。我想获得用户数据,让这个用户知道他已经由该用户创建了哪个职位发布,但数据没有显示,我怎么能修复它??
控制器:
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()
方法返回数组的数组(在您的示例中为$row['user_id'])。既然您已经使用了前者,我希望您已经在lowongan
视图中相应地处理了这些行对象。如果不这样做,可能会导致你在问题中描述的问题。
假设您已经处理了视图,接下来要做的第二件事是放置一个error_log()
语句并查看它返回的值。您可以在get_where()
语句之后放置这样的内容,然后观察HTTP服务器日志中它获得的值:
error_log("THE RESULT IS: " . print_r($data, true));
根据是否打印正确的值,您可以进一步排除问题所在。
必须创建控制器和模型,并从construct
中调用模型constroller:
<?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();
}
}
我所做的是。我在我的模型上创建了一个名为get_data的函数
模型:
public function get_data($where, $table){
return $this->db->get_where($table, $where);
}
在控制器中,我只需要这样做:
The 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