Проверка формы CodeIgniter.Несколько звонков не работают - PullRequest
1 голос
/ 08 сентября 2010

Я использую CodeIgniter.Я пытался отладить нерабочий сценарий.

Я пришел к выводу, что при использовании $this->form_validation->run(); (класс проверки формы) после первого именованного вызова, например, $this->form_validation->run(form_1);, все последующиезвонки возвращают true.

Я разрабатываю многошаговую форму, и когда $this->form_validation->run(form_1); правильно возвращает true, $this->form_validation->run(form_2); неверно возвращает true.

Кто-нибудь может понять, почему?Разве несколько вызовов нельзя удерживать в одной функции внутри контроллера или существует особый подход?Ура

Ответы [ 2 ]

3 голосов
/ 17 октября 2012

способ настройки codeigniter не позволяет выполнять проверку несколькими правилами, вы можете расширить помощник по формам с помощью функции группирования правил (http://ellislab.com/codeigniter/forums/viewthread/120221) или, как я делал в моем application/config/form_validation.phpЯ просто объединил несколько групп в собственный набор правил и сослался на единое правило объединенных правил.

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

$config = array(

  "campaign" => array(
    array(
      "field" => "campaign[title]",
      "label" => "campaign title",
      "rules" => "trim|required|max_length[255]|xss_clean"
    )
  ),

  "user" => array(
    array(
      "field" => "user_info[email]",
      "label" => "email",
      "rules" => "trim|required|valid_email|is_unique[user_info.email]|max_length[255]|xss_clean"
    )
  )
);

$config["campaign_user"] = array_merge($config['campaign'], $config['user']);

Интересующая линия - последняя, ​​где объединяются два правила:

$config["campaign_user"] = array_merge($config['campaign'], $config['user']);

и в вашем контроллере вы бы просто назвали единственное правило:

if($this->form_validation->run('campaign_user'))
{
    # validation successful
}
0 голосов
/ 09 сентября 2010

Пожалуйста, проверьте, есть ли у вас аргумент (form1) и (form2) в вашей функции set_rules () ..... и, если все в порядке, сделайте 1-й вызов form_validation возвращающим FALSE, а затем посмотрите, является ли 2-й вызов form_validation все еще возвращает TRUE.

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