我在我的模型中使用此代码从注册表中获取登录用户的user_id
:
function get_user_id()
{
$this->db->select('user_id');
$this->db->from('register');
$this->db->where('username', $this->session->userdata('username'));
$query = $this->db->get();
}
我在我的控制器中使用它将登录用户的user_id
插入另一个使用user_id
作为外键的表中。
public function event_desc()
{
$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
$this->form_validation->set_rules('event_title','Event Title','required|max_length[40]');
$this->form_validation->set_rules('event_desc','Event Description','required');
$this->form_validation->set_rules('event_cat','Event Category','required|callback_is_default');
$this->form_validation->set_rules('event_date','Event Date','required|date');
$this->form_validation->set_rules('event_venue','Event Venue','required|max_length[25]');
$this->form_validation->set_rules('event_charges','Event Charges','required');
if($this->form_validation->run()== FALSE)
{
$this->add_event();
}
else
{
$this->load->model('event_model');
$u_id=$this->event_model->get_user_id();
$data=array(
'cat_id '=> $this->input->post('event_cat'),
'user_id' => $u_id,
'event_title' => $this->input->post('event_title'),
'event_desc' => $this->input->post('event_desc'),
'event_date' => $this->input->post('event_date'),
'event_venue' => $this->input->post('event_venue'),
'event_charges' => $this->input->post('event_charges'),
);
$this->event_model->add_event_record($data);
$this->is_logged_in();
}
}
提交表单时,会显示以下错误:
A Database Error Occurred
Error Number: 1048
Column 'user_id' cannot be null
INSERT INTO `tbl_events` (`cat_id` , `user_id`, `event_title`, `event_desc`,
`event_date`, `event_venue`, `event_charges`) VALUES ('2', NULL, 'vhbnjkm',
'vhbnjkm', '2070/09/09', 'jfhsk', 'hsj')
Filename: C:/xampp/htdocs/event-tracker/application/models/event_model.php
Line Number: 6
请帮我解决问题:
答案 0 :(得分:0)
您必须插入user_id,因为它似乎是另一个表的外键。如果你想留空,你应该改变你的逻辑
答案 1 :(得分:0)
可能有两种可能性
1获取userID的方式无效,请使用以下代码获取ID
$this->current_user->id
2您应首先检查用户是否已登录