Codeigniter окуляр и проверка формы - PullRequest
0 голосов
/ 18 августа 2011

Новый для CodeIgniter и новый для Ocular, так что терпите меня.

Я использовал кодирование следующим образом при запуске проверки формы (где метод index () содержит код загрузки формы):

if ($this->form_validation->run() == FALSE)
{
    $this->index();
}
else
{
    $this->load->view('view_name', $data);
}

Однако я сейчас пытаюсь использовать Ocular Template Library, и приведенный выше код больше не работает, см. Пример ниже:

if ($this->form_validation->run() == FALSE)
{
    $this->index();
}
else
{
    $this->template->set($data);
    $this->template->render();
}

Приведенный выше код не проходит через индексный метод, как это было раньше без Ocular, и мне было интересно, как лучше всего это исправить или даже если мой предыдущий код был лучшим?

С уважением, Numan1617

1 Ответ

1 голос
/ 18 августа 2011

Иногда трудно определить лучшую практику с Codeigniter, потому что она не требует соглашений, поэтому все, что я могу вам сказать, это то, как я нашел лучший из моего опыта ...

Я предполагаю, что ваше представление формы обслуживается через index(), а затем вы отправляете свою форму в эту (отдельную) функцию контроллера, которая проверяет и обрабатывает данные формы и повторно отображает представление с ошибками, если возникла проблема ...

Я бы очистил это, объединив все в одну функцию ...

public function form()
{
    //if this is a post request
    if ($_POST)
    {
        //check the validation
        if ($this->form_validation->run())
        {
            //process it
            //and then redirect if you want to send to a "success" page
            redirect('uri/to/success');
        }
        else
        {
            //load up $data values to re-display form
        }
    }

    //load up any $data values needed for standard view
    $this->load->view('view', $data);
    // or $this->template stuff...

}

Мне всегда казалось, что это плохой путь к внутреннему вызову функций контроллера, напр. $this->index()

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