CodeIgniter form_validation 没有显示错误

CodeIgniter form_validation is not showing errors

我是 CodeIgniter 的新手,我对 form_validation:

有疑问

============================================= =============================

public function auth()
{
    $this->load->helper(array('from','url'));

    $this->load->library('form_validation');

    $rules = array(
        array(
            'field' => 'username',
            'label' => 'username',
            'rules' => 'required'
        ),
        array(
            'field' => 'password',
            'label' => 'Password',
            'rules' => 'required'
        )
    );
    $this->form_validation->set_rules($rules);

    if ($this->form_validation->run() == false) {
        $this->load->view('login');
    } else {
        echo ';) like a boss';
    }
    }
}

============================================= ===================

============================================= ===================

<section class="container">
    <div class="login">
        <h1>Login to Web App</h1>
        <?php
        $this->load->helper('form');
        echo validation_errors();
        echo form_open('login/auth');
        $username = form_input(array('name' => 'username', 'placeholder' => 'Username or Email'));
        $password = form_password(array('name' => 'password', 'placeholder' => 'Password'));
        $checkbox = form_checkbox('remember', '1');
        $submit = form_submit('submit', 'Login');
        ?>
        <p><?= $username ?></p>
        <p><?= $password ?></p>
        <p class="remember_me">
            <label>
                <?= $checkbox ?>
                Remember me on this computer
            </label>
        </p>
        <p class="submit"><?= $submit ?></p>
        <?php echo form_close(); ?>
    </div>
</section>    

你的代码中多了一个尖括号

public function auth()
{
    $this->load->helper(array('from','url'));

    $this->load->library('form_validation');

    $rules = array(
        array(
            'field' => 'username',
            'label' => 'username',
            'rules' => 'required'
        ),
        array(
            'field' => 'password',
            'label' => 'Password',
            'rules' => 'required'
        )
    );
    $this->form_validation->set_rules($rules);

    if ($this->form_validation->run() == false) {
        $this->load->view('login');
    } else {
        echo ';) like a boss';
    }`enter code here`
}
  1. 从底部删除一个右括号

  2. 改为$this->load->helper(array('form','url'));

    public function auth() {
    
      $this->load->helper(array('form','url'));
    
      $this->load->library('form_validation');
    
      $rules = array(
        array(
            'field' => 'username',
            'label' => 'username',
            'rules' => 'required'
        ),
        array(
            'field' => 'password',
            'label' => 'Password',
            'rules' => 'required'
        )
       );
       $this->form_validation->set_rules($rules);
    
       if ($this->form_validation->run() == false) {
         $this->load->view('form-new');
       } else {
          echo ';) like a boss';
       }
    }
    

这将是 codeignitor 助手,它可以减少人工工作

 $this->load->helper(array('from','url'));

This would be the library function which validation process works

$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'required');
$this->form_validation->set_rules('password', 'Password', 'required');


 if ($this->form_validation->run() == false) {
//code       
  }else{
// code
}

// 对于 codeignitor 中的设置规则,请检查以下内容 url

参考:

https://www.codeigniter.com/user_guide/libraries/form_validation.html