Codeigniter,字段未更新,但其他字段将更新

这是我的功能


function store(){

            $this->load->library('form_validation');

            $this->form_validation->set_rules('shorthand','Shorthand','required|is_unique[locations.shorthand]');


            if($this->form_validation->run() == FALSE){

                redirect('locations');

            } else {

            $id = $this->input->post('location_id');

            $location_name = ucwords(strtolower($this->input->post('location_name')));

            $shorthand = strtolower($this->input->post('shorthand'));

            $station = ucwords(strtolower($this->input->post('station')));


            $data = array(

                'location_name'=>$location_name,

                'shorthand'=>$shorthand,

                'station'=>$station

            );


            }if($id){

                $result = $this->location_model->update($data,$id);

                if($result > 0){

                    $this->session->set_flashdata('success', 'Update successfull!');

                }else{

                    $this->session->set_flashdata('error', 'Failed to update!');

                }

                redirect('locations');

            }else{

                $result = $this->location_model->create($data);

                if($result > 0){

                    $this->session->set_flashdata('success', 'Location added!');

                }else{

                    $this->session->set_flashdata('error', 'Failed to add location!');

                }

                redirect('locations');

            }

        }

速记更新很好,但无论我做什么,station 和 location_name 都不会更新。但是如果我删除这段代码。


$this->load->library('form_validation');

            $this->form_validation->set_rules('shorthand','Shorthand','required|is_unique[locations.shorthand]');


            if($this->form_validation->run() == FALSE){

                redirect('locations');

            } else {

所有字段都将更新。你能看看我的代码吗?提前致谢。

慕莱坞森
浏览 94回答 2
2回答

慕田峪4524236

我认为这是你需要的。请根据您的需要进行管理$locations = $this->db->get_where('locations', array('location_id' => $id))->row();$original_value = $locations->shorthand; if($this->input->post('shorthand') != $original_value) {   $is_unique =  '|is_unique[locations.shorthand]';} else {  $is_unique =  '';}$this->form_validation->set_rules('shorthand','Shorthand','required|trim|xss_clean'.$is_unique);

哔哔one

那些评论过的人,谢谢,但我已经解决了控制器内部的问题,我忘了在这行后面加上其他内容if($this->form_validation->run() == FALSE){                redirect('locations');            }这就是整个函数现在的样子function store(){            $this->form_validation->set_rules('location_name','Location_name','required');            $this->form_validation->set_rules('shorthand','Shorthand','required|callback_locationExists');            $this->form_validation->set_rules('station','Station','required');            $id = $this->input->post('location_id');            $location_name = ucwords(strtolower($this->input->post('location_name')));            $shorthand = strtolower($this->input->post('shorthand'));            $station = ucwords(strtolower($this->input->post('station')));            $data = array(                'location_name'=>$location_name,                'shorthand'=>$shorthand,                'station'=>$station,            );            if($this->form_validation->run() == FALSE){                redirect('locations');            }else{                if($id){                    $result = $this->location_model->update($data,$id);                    if($result > 0){                        $this->session->set_flashdata('success', 'Update successfull!');                    }else{                        $this->session->set_flashdata('error', 'Failed to update!');                    }                    redirect('locations');                }else{                    $result = $this->location_model->create($data);                    if($result > 0){                        $this->session->set_flashdata('success', 'Location added!');                    }else{                        $this->session->set_flashdata('error', 'Failed to add location!');                    }                    redirect('locations');                }            }        }谢谢阅读
打开App,查看更多内容
随时随地看视频慕课网APP