Codeigniter Bootstrap同时添加和编辑记录

时间:2020-08-16 15:13:37

标签: mysql codeigniter twitter-bootstrap-3

我有一个与Codeigniter项目相关的MySQL表,该表用于维护文件的详细信息,如下所示(tbl_documents):

user@disp3221:~$ sudo python3 -m pip install fuckit
Collecting fuckit
  Downloading https://files.pythonhosted.org/packages/cc/f4/0952081f9e52866f4a520e2d92d27ddf34f278d37204104e4be869c6911d/fuckit-4.8.1.zip
Building wheels for collected packages: fuckit
  Running setup.py bdist_wheel for fuckit ... done
  Stored in directory: /root/.cache/pip/wheels/a9/24/e6/a3e32536d1b2975c23ac9f6f1bdbc591d7b968e5e0ce6b4a4f
Successfully built fuckit
Installing collected packages: fuckit
Successfully installed fuckit-4.8.1
user@disp3221:~$ 

user@disp3221:~$ ./test.py 
two
user@disp3221:~$ 
下表(tbl_subjects)引用了

subject_id:

+-----+---------+-------+------------+-----------+--------+---------+--------+
| id  | file_no | name  | subject_id | folder_no | row_no | rack_no | status |
+-----+---------+-------+------------+-----------+--------+---------+--------+
| 100 | GSP/01  | Test  |          1 |         1 |      1 |       2 |      1 |
| 101 | GSP/02  | Test1 |          2 |         2 |      1 |       3 |      1 |
| 102 | GSP/03  | Test2 |          1 |         2 |      1 |       3 |      1 |
| 103 | GSP/04  | Test3 |          3 |         2 |      2 |       1 |      1 |
| 104 | GSP/05  | Test4 |          4 |         1 |      1 |       1 |      1 |
+-----+---------+-------+------------+-----------+--------+---------+--------+

插入,更新和删除记录工作正常。如果我使用tbl_subject中现有的subject_id编辑记录,则该功能正常运行。但是我想在tbl_documents表中编辑一条记录,同时在tbl_subject表中插入新主题时,该功能无法正常工作(我的要求)。我的问题主要是针对subject_id。我在控制器中使用了以下几行。

控制器

+------------+--------------+--------+
| subject_id | subject_name | status |
+------------+--------------+--------+
|          1 | A/01         |      1 |
|          2 | A/02         |      1 |
|          3 | A/03         |      1 |
|          4 | B/01         |      1 |
|          5 | B/02         |      1 |
|          6 | C/01         |      1 |
+------------+--------------+--------+

Documents_model

public function store($id = null)
    {
    $this->form_validation->set_rules('name', "File/Document Name", 'required');  
    if ($this->form_validation->run()) {
        $subject_id = $this->input->post('subject_id');         
        $sub_data = []; 
        
            $sub_data = array(
               'subject_name' => $subject_id,
               'status' => 1                      
                ); 
            $data = array(
                'file_no' => $this->input->post('file_no'),
                'name' => $this->input->post('file_name'),
                'subject_id' => $this->input->post('subject_id'),                
                'folder_no' => $this->input->post('folder_no'),
                'rack_no' => $this->input->post('rack_no'),
                'row_no' => $this->input->post('row_no'),                
                'status' => 1
            );
     }
if ($this->form_validation->run() && $this->documents_model->save($data, $id, $sub_data)) {
            if ($id)
                $message = 'File/ Document Details have been Updated successfully..!!';
            else
                $message = 'File/ Document details have been saved successfully..!!';
            $this->session->set_flashdata('message', $message);
            redirect('documents');
        } else {
            redirect('documents');
        }
    }

视图的主题部分

public function save($item, $id, $sub_data = [])
{
     $this->db->trans_start();
     if (!empty($sub_data)) {
            $this->db->insert('tbl_subjects', $sub_data);
            $data['subject_id'] = $this->db->insert_id();
        }       
        if ($id) {          
            $this->db->update('tbl_documents', $item, array('id' => $id));
        } else {
            $this->db->insert('tbl_documents', $item);  
        }
        $this->db->trans_complete();
        return $this->db->trans_status();
}

0 个答案:

没有答案
相关问题