为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕莱坞森 2022-06-17 16:49:13
这是我的功能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 {所有字段都将更新。你能看看我的代码吗?提前致谢。
查看完整描述

2 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

我认为这是你需要的。请根据您的需要进行管理


$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);



查看完整回答
反对 回复 2022-06-17
?
哔哔one

TA贡献1854条经验 获得超8个赞

那些评论过的人,谢谢,但我已经解决了控制器内部的问题,我忘了在这行后面加上其他内容


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');

                }

            }

        }

谢谢阅读


查看完整回答
反对 回复 2022-06-17
  • 2 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信