Проверка формы Codeigniter 3 не работает должным образом - PullRequest
1 голос
/ 11 апреля 2019

Документация CI3 четко гласит: «Поскольку вы еще не сказали классу проверки формы что-либо проверять, он по умолчанию возвращает FALSE (логическое ложное значение). The run() метод возвращает TRUE, только если он успешно применил ваши правила без какого-либоиз них терпят неудачу ".

У меня есть фрагмент метода ниже.Очевидно, что при первом просмотре представление всегда будет выдавать «Предупреждение - что-то пошло не так», но без validations_errors ().Как мне исправить это?Можно ли проверить, была ли форма $ _POST?Каков наилучший способ или предложение о том, как завершить?bootstrap_alert () просто помещает сообщение об ошибке или об успешном завершении в предупреждение о загрузке.

    if ($this->form_validation->run() == FALSE) {
        $message = array(   'message'   => 'Warning - Ooops something went wrong '.validation_errors(),
                            'class'     => 'danger',  // must be warning, danger, success or info.
                    );
        $this->data['alert'] = bootstrap_alert($message);
        $this->load->view($this->mh_template, $this->data);
    }   else {
        $my_time_zone   = $this->input->post('timezones');
        $user_id        = $this->ion_auth->user()->row()->id;
        $setting_insert_or_update = 'user_time_zone';
        $this->MH_user_settings_model->mh_insert_or_update_setting($setting_insert_or_update, $my_time_zone, $user_id);
        $message = array(   'message'   => 'Success - Timezone updated',
                            'class'     => 'success',  // must be warning, danger, success or info.
                        );
        $this->data['alert'] = bootstrap_alert($message);
        $this->load->view($this->mh_template, $this->data); 
    }

Это то, что я наконец-то закончил делать:

// установить правила формы $ this-> form_validation-> set_rules ('timezones', 'timezones', 'required');

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

        $this->load->view($this->mh_template, $this->data);


    }   else {

        $my_time_zone   = $this->input->post('timezones');
        $user_id        = $this->ion_auth->user()->row()->id;
        $setting_insert_or_update = 'user_time_zone';
        $this->MH_user_settings_model->mh_insert_or_update_setting($setting_insert_or_update, $my_time_zone, $user_id);
        $message = array(   'message'   => 'Success - Timezone updated',
                            'class'     => 'success',  // must be warning, danger, success or info.
                        );
        $this->data['alert'] = bootstrap_alert($message);
        $this->session->set_flashdata('message', $this->data['alert'] );              
        redirect('/MH_app_private/mh_app_settings');
    }

Ответы [ 2 ]

1 голос
/ 11 апреля 2019

Проверьте, является ли запрос POST показывать или не показывать предупреждение.

0 голосов
/ 12 апреля 2019

Я не осознавал, что могу отформатировать validation_errors () примерно так:

$this->form_validation->set_error_delimiters('<div class="error">', '</div>');  

Это, наконец, и решило проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...