Проверка CodeIgniter не отображается в форме

Еще одна ошибка 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'
        )
    ),

О, я столкнулся с этим как с возможной ошибкой, поэтому могу подтвердить, что base_url установлен в конфигурации.

Gazman Development Gosford 06.05.2018 11:22
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
1
87
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Исправить

В 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!";
    }
}

Спасибо за предложение - хотя я не расширяю библиотеку CI Form Validation. Я создал расширение библиотеки MY_Form_validation и попробовал его. Если бы я просто позвонил в обычную библиотеку $this->load->library(form_validation), ничего не изменилось. Если я позвонил $this->load->library(MY_Form_validation, он сказал мне, что класса CI Form Validation нет в моей библиотеке. Я действительно не хочу переписывать всю библиотеку проверки.

Gazman Development Gosford 07.05.2018 11:23

Прекрасно, сэр. Я все равно добавил альтернативу.

Karlo Kokkak 07.05.2018 11:35

Альтернатива заставила это работать. Странно, но я в деле. Спасибо :)

Gazman Development Gosford 07.05.2018 11:56

Другие вопросы по теме