我在images
表的user_id
列的users
表中有一个外键约束。尝试上传新图像时,出现数据库错误
1364:字段“ user_id”没有默认值。
我怀疑是因为代码正在寻找要添加到images
列的值。我原本以为,如果设置了会话,则加载图片会自动识别正在上传图片的用户。
问题:当用户上传图像时,如何包含将两个表合并的数据?这是上传图像的控制器中的代码:
function upload() {
//$filename = md5(uniqid(rand(), false));
$config = array(
'upload_path' => 'uploads',
'allowed_types' => "gif|jpg|png|jpeg",
//'file_name' => $filename,
'max_size' => 200,
'max_width' => 1024,
'max_height' => 768
);
$this->load->library('upload', $config);
if(empty($this->session->userdata['email'])){
redirect(site_url().'/main/login/');
}else
$this->load->library('upload', $config);
if($this->upload->do_upload())
{
$file_data = $this->upload->data();
$data['name'] = $file_data['file_name'];
$data['file'] = $file_data['file_path'];
$data['file_type'] = $file_data['file_type'];
$data['file_size'] = $file_data['file_size'];
$data['date_uploaded'] = date('Y/m/d H:i:s');
images_model:
function save_image($data){
$this->db->insert('images', $data);
}
赞赏所有输入和建议。
答案 0 :(得分:0)
我认为在您的应用程序中,只有用户可以上传图片... 然后,在上传图片之前,您应该检查用户是否已签名并获取用户ID ...
要将新记录添加到图像表时,必须将user_id添加到$ data数组
$ data ['user_id'] = $ this-> session-> userdata('user_id'); //或您添加到会话中的任何内容
...