我正在使用我的第一个CI应用程序,并且我遇到了库form_validation
的问题。
验证和我的方法工作正常,除了我无法显示我的错误消息。正如手册所说,我试图单独展示它们,但没有奏效。试图使用echo validation_errors();
显示它们,但错误消息在我的页面中是空白的。
所以我做了一个测试,把代码放在控制器中,然后才能工作!但它们显示在页面的开头。我使用了一些javascript来使它在视觉上更好(将它移动到我希望它显示的位置),但它并不美观。我尝试了CodeIgniter上的所有内容,但仍然没有得到好结果。拜托,有人可以帮我吗?
这是我的控制器 User.php :
public function registrar() {
$this->load->library('form_validation');
$this->load->view('registrar');
$this->form_validation->set_rules('name', 'Nome', 'trim|required|min_length[7]',
array( 'required' => '<br>- Por favor, insira seu nome.',
'min_length' => '<br>- Por favor, insira seu nome completo.'));
// ..... other rules
if ($this->form_validation->run() == TRUE)
{
$password = $this->input->post('password');
$password_hash = password_hash($password, PASSWORD_BCRYPT);
$data = array(
'name' => $this->input->post('name'),
'email' => $this->input->post('email'),
'password' => $password_hash
);
if ($this->user_model->insertUser($data))
{
$this->session->set_flashdata('error_msg','<p>Ok</p>');
redirect('user/registrar');
}
else
{
$this->session->set_flashdata('error_msg','<p>Not ok</p>');
redirect('user/registrar');
}
}
else
{
echo validation_errors('<div class="error">', '</div>'); //THIS LINE WORKS!!!
}
}
这是我的观点 registrar.php :
<form action="" method="post" class="pure-form"> // using this only for css styling
<?php echo validation_errors(); ?> // THIS LINE DOESN'T WORKS :(
<?php echo form_open('user/registrar');?>
<fieldset>
<h1>Registrar</h1>
<div class="pure-control-group group gr-2">
<label for="email">Nome:</label>
<input type="text" class="pure-input-1" id="name" name="name" placeholder="Nome" value="<?php echo set_value('name');?>">
</div>
// ....... everything else
<input type="submit" class="pure-button pure-button-primary verde" value="Cadastrar" name="register_submit">
</div>
<?php echo form_close();?>
</form>
答案 0 :(得分:0)
您正在验证之前加载视图页面。这就是在registrar.php中没有显示validation_errors的原因。
$这 - &GT;负载&gt;查看( '注册商'); 在验证的其他条件或函数结束后添加此项。