这是我的控制器,我的表单正在提交。我已经在此处创建了验证,但是注意到正在工作
public function add_masteradmin()
{
$this->form_validation->set_error_delimiters("<div class='col-sm-5 col-form-label text-danger'>", '</div>');
$this->form_validation->set_rules('full_name','Full Name','required|alpha|trim');
$this->form_validation->set_rules('username','User Name','required|alpha|trim');
if ($this->form_validation->run() == false ){
return redirect('Appconfig/master_admin');
}
else{
$post = $this->input->post();
unset($post['submit']);
$this->load->model('AppconfigModel');
$this->AppconfigModel->insert_masteradmin($post);
return redirect('Appconfig/master_admin');
}
}
这是我的视图,我的表单所在的位置。目前,我只验证我的全名
<div class="col-md-10 mt-3 mb-4">
<?php echo form_open('Appconfig/add_masteradmin', ['class'=>'form-inline form-color','id'=>'masterform']); ?>
<div class="row">
<div class="form-group col-sm-6">
<label class="col-sm-5 col-form-label">Full Name</label>
<div class="col-sm-7">
<?php echo form_input(['name'=>'full_name' , 'class'=>'form-control']); ?>
</div>
<?php echo form_error('full_name'); ?>
</div>
<div class="form-group col-sm-6">
<label class="col-sm-5 col-form-label">Username</label>
<div class="col-sm-7">
<?php echo form_input(['name'=>'username' , 'class'=>'form-control']); ?>
</div>
</div>
<?php echo form_submit(['name'=>'submit', 'value'=>'Submit','class'=>'btn btn-first d-block mx-auto mt-4', 'id'=>'sub']) ?>
<?php echo form_close(); ?>
答案 0 :(得分:1)
首先,您不需要return
重定向。其次,如果要重定向,则不能直接访问validation_errors()
或form_error()
(因为验证错误仅适用于当前提交的实例,不适用于重定向后的实例)。
如果您希望使用重定向获取验证错误,请将该错误分配给会话变量,并在重定向后在视图中检索该错误。 或者您可以采用文档中介绍的通用方法,并通过相同的控制器方法进行验证和处理。
https://www.codeigniter.com/userguide3/libraries/form_validation.html#the-controller
或者,您可以加载视图而不是重定向,但是该方法会修改url,以便用户将在add_masteradmin
上进行所有并发提交。
答案 1 :(得分:1)
应该重定向所需的视图,而不是重定向到页面,这是您所遇到的最聪明的方法:
替换
return redirect('Appconfig/master_admin');
作者
$this->load->view('AppConfig/master_admin');
然后,您将不需要在会话中保存信息。