Обновить значения: не изменять значение, если поле пустое - PullRequest
0 голосов
/ 30 марта 2020

Я использую Codeigniter Restful, и я хотел бы сделать метод обновления.

Моя проблема в том, что я пытаюсь выполнить обновление, не проверяя, являются ли поля значений пустыми, обновление удаляет пустые поля.

Поэтому я попытался контролировать, является ли поле пустым до обновления, и в результате я получаю эту ошибку: Вы должны использовать метод "set" для обновления записи.

Как мне сделать, чтобы обновить значения в БД и не удалять пустые поля?

Это контроллер

public function person_patch()
    {
        $id = $this->uri->segment(3);

        $data = array();

        if(($this->input->post('fiscalcode') != '')){
        $data['fiscalcode']=$this->input->post('fiscalcode');}
        if(($this->input->post('name') != '' )){
        $data['name']=$this->input->post('name');}

        var_dump($_POST);
        $this->load->model('Person_model');
        $query = $this->Person_model->patch($id, $data);
}

Это модель:

public function patch($id, $data)
    {
        $result = $this->db->update('Persons', $data, array('id' => $id));
        return $result;
    }

Так, например, если я передаю с помощью формы только поле (например, fiscalcode), теперь я получаю сообщение об ошибке. Если я не проверю, является ли поле пустым, имя поля становится пустым.

1 Ответ

1 голос
/ 31 марта 2020

Полагаю, вы получаете ошибку только тогда, когда оба поля пусты. Попробуйте следующее.

if(!empty($data)){
   $this->load->model('Person_model');
   $query = $this->Person_model->patch($id, $data);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...