Проверка CodeIgniter не отображается в форме - PullRequest
0 голосов
/ 06 мая 2018

Другая CI Validation Ошибка здесь. Я пробовал искать, и, насколько я вижу, код у меня в порядке. Проверка запускается - если я просто выведу строку «Validation Failed» из контроллера, она отобразится.

Но я не могу заставить его отображаться в реальном виде. Даже если у меня есть одна строка в представлении (например, echo validation_errors ();), ошибки не выводятся, даже если произойдет сбой validation.

Любые указатели будут с благодарностью:)

Контроллер

public function add() {
    if ($this->form_validation->run('user_add_edit') == FALSE)
    {
        //Validation failed
        $this->load->view('templates/header_generic');
        $this->load->view('templates/navigation');
        $this->load->view('user/add_user_form');
        $this->load->view('templates/footer_generic');
    }
    else
    {
        echo "Form validated!";
    }
}

Просмотр (частично)

                        <div class="panel-body">

                        <?php echo validation_errors(); ?>

                        <?php echo form_open('user/add'); ?>
                            <label for="email">
                                Email Address
                            </label><br />
                            <div class="form-group input-group <?php echo null === form_error('email') || is_null(form_error('email')) ? 'form-group has-error' : ''; ?>">
                                <span class="input-group-addon">@</span>
                                <?php echo form_input($email_attr, set_value('email')); ?>
                            </div>
                            <br />
                            <?php echo form_error('email');?>
                            <br />
                            <?php echo form_fieldset("Password"); ?>
                            jfkdjflkdjflks
                            <?php echo form_fieldset_close(); ?>
                            <br />
                            <?php echo form_submit("submit", "Add New User", "class='btn btn-success'"); ?>
                        </form>
                    </div>

Проверка формы

$config = array(
'user_add_edit' => array(
    array(
        'field' => 'email',
        'label' => 'Email Address',
        'rules' => 'trim|required|valid_email|is_unique[user.email]',
        'errors'    => array(
            'required'  => 'You must enter a %s',
            'valid_email'   => '%s is not a valid email address',
            'is_unique'     => 'This email address already exists'
        )
    ),

1 Ответ

0 голосов
/ 06 мая 2018

Неправильная настройка MY_Form_validation.php может привести к неправильной настройке правил формы через конфигурационный файл.

Fix

In application/libraries/MY_Form_validation.php - замените ваш конструктор приведенным ниже кодом или просто следуйте приведенным ниже изменениям, добавив параметр $ config.

function __construct($config = array()){
    parent::__construct($config);
    $this->CI =& get_instance();
}

Это также возможность , что значение переменной $ config перезаписывается, что происходит внутри application/config/form_validation.php. Проверьте это также.

Альтернатива:

Загрузите файл конфигурации form_validation.php из метода контроллера и передайте соответствующий элемент конфигурации в set_rules (..), как показано ниже.

public function add() {
    $this->load->config('form_validation');
    $this->form_validation->set_rules($this->config->item('user_add_edit'));

    if ($this->form_validation->run() == FALSE)
    {
        //Validation failed
        $this->load->view('templates/header_generic');
        $this->load->view('templates/navigation');
        $this->load->view('user/add_user_form');
        $this->load->view('templates/footer_generic');
    }
    else
    {
        echo "Form validated!";
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...