CodeIgniter技术问题:如何根据user_id显示用户创建的招聘职位?
解决CodeIgniter中用户无法查看自身创建招聘职位的问题
嘿,我来帮你搞定这个问题!先看你贴的Lowongan控制器代码,有两个关键小错误直接导致了数据无法显示,咱们一步步修正:
1. 数据库查询参数格式错误
你用$this->db->get_where()的时候,第二个参数传的是索引数组['user_id', $this_id],但CodeIgniter要求这里必须是键值对形式的关联数组,这样框架才能正确识别“字段名=值”的查询条件。
错误写法:
$data['t_lowongan'] = $this->db->get_where('t_lowongan', ['user_id', $this_id])->result();
正确写法:
$data['t_lowongan'] = $this->db->get_where('t_lowongan', ['user_id' => $this_id])->result();
2. 视图加载的语法错误
你写的$this->load-view('lowongan', $data);里,load和view之间应该用箭头->而不是减号-,这个语法错误会直接阻止视图加载,甚至抛出PHP错误。
修正后:
$this->load->view('lowongan', $data);
修正后的完整控制器代码
public function lowongan() { $this_id = $this->session->userdata('id_user'); // 修正get_where的参数格式 $data['t_lowongan'] = $this->db->get_where('t_lowongan', ['user_id' => $this_id])->result(); // 修正视图加载的语法 $this->load->view('lowongan', $data); }
额外排查建议
如果修正后还是看不到数据,可以试试这些步骤:
- 先确认会话里的用户ID是否正确:在控制器里加一行
var_dump($this_id); exit;,看看输出的是不是当前登录用户的id_user,确保session正常工作。 - 检查数据库数据:手动执行SQL语句
SELECT * FROM t_lowongan WHERE user_id = [你的用户ID],确认数据库里确实存在该用户创建的招聘职位。 - 核对字段类型:确保
t_lowongan表的user_id字段和users表的id_user字段类型一致(比如都是INT类型),避免因类型不匹配导致查询无结果。
内容的提问来源于stack exchange,提问作者Nicho
相关产品推荐
相关产品推荐

