как отправить более 1 параметра в установленных правилах в публичную функцию в codeIgniter - PullRequest
0 голосов
/ 28 октября 2018

ссылка на это:

Проверьте дубликаты данных в CodeIgniter, попробуйте сделать функцию обратного вызова

, и это мой контроллер:

function saveData(){
    $value = $this->input->post('Id');
    $fromtable = 'tbl_tablename';
    $fromwhere = 'Id';
    $this->form_validation->set_rules('productId', '', 'callback_check_duplicate_record[' . $value,$fromtable,$fromwhere . ']');

    if ($this->form_validation->run() == FALSE) {
        $this->session->set_flashdata('error', 'Record already exists.');
        redirect('addNew');
        return;
    }
}
public function check_duplicate_record($value,$fromtable,$fromwhere) {

return $this->user_model->checkRecordExists($value,$fromtable,$fromwhere);

}

это нормально работает с 1 параметром, но как отправить 3 параметра.

где я делаю неправильно.

1 Ответ

0 голосов
/ 28 октября 2018

вы не делаете ничего плохого, скажем так, просто функция обратного вызова предназначена только для обработки параметра 1.

, поскольку два ваших значения жестко запрограммированы, вам на самом деле не нужнопередать их технически.

$this->form_validation->set_rules('productId', '', 'callback_check_duplicate_record[' . $value . ']');

public function check_duplicate_record($value) {
    $fromtable = 'tbl_tablename';
    $fromwhere = 'Id';
    return $this->user_model->checkRecordExists($value,$fromtable,$fromwhere);
}

и, честно говоря, даже не похоже, что вам нужна проверка формы, поскольку ваш единственный валидатор - это обратный вызов, просто используйте это:

if (!$this->user_model->checkRecordExists($value,$fromtable,$fromwhere)) {
        $this->session->set_flashdata('error', 'Record already exists.');
        redirect('addNew');
        return;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...