我使用以下代码进行表单验证,员工代码已经存在。我可以轻松验证表单,但如果员工代码已存在,我无法显示消息
作为controllers / employee.php的以下代码
public function add_employee($site_id = false)
{
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$this->form_validation->set_rules('name', 'Name', 'trim|required|max_length[50]|xss_clean');
$this->form_validation->set_rules('father_name', 'Father Name', 'trim|required|max_length[50]|xss_clean');
$this->form_validation->set_rules('DOB', 'Date Of Birth', 'trim|required|max_length[50]|xss_clean');
$this->form_validation->set_rules('mobile_no', 'Mobile Number', 'trim|required|min_length[10]|max_length[10]|integer|xss_clean');
$this->form_validation->set_rules('email_id', 'Email Id', 'valid_email|xss_clean');
$this->form_validation->set_rules('e_code', 'Employee Code', 'trim|required|max_length[20]|xss_clean');
//$this->form_validation->set_rules('local_address', 'Local Address', 'trim|required|max_length[200]|xss_clean');
$this->form_validation->set_rules('permanent_address', 'Permanent Address', 'trim|required|max_length[200]|xss_clean');
//$this->form_validation->set_rules('adhaar_no', 'Adhaar Number', 'trim|required|min_length[12]|max_length[12]|xss_clean');
//$this->form_validation->set_rules('account_no', 'Account Number', 'trim|required|max_length[50]|xss_clean');
//$this->form_validation->set_rules('bank_name', 'Bank Name', 'trim|required|max_length[50]|xss_clean');
//$this->form_validation->set_rules('branch_name', 'Branch Name', 'trim|required|max_length[50]|xss_clean');
//$this->form_validation->set_rules('ifsc_code', 'IFSC Code', 'trim|required|max_length[50]|xss_clean');
$this->form_validation->set_rules('reference_by', 'Reference By', 'trim|required|max_length[50]|xss_clean');
$this->form_validation->set_rules('work_location', 'Work Location', 'trim|required|xss_clean');
$this->form_validation->set_rules('designation', 'Designation', 'trim|required|max_length[50]|xss_clean');
$this->form_validation->set_rules('salary', 'Salary', 'trim|required|max_length[50]|xss_clean');
$this->form_validation->set_rules('joining_date', 'Joining Date', 'trim|required|max_length[50]|xss_clean');
$this->form_validation->set_rules('pan_no', 'Pan Number', 'trim|regex_match[/^([a-zA-Z]){5}([0-9]){4}([a-zA-Z]){1}?$/]|max_length[50]|xss_clean');
//$this->form_validation->set_rules('id_proof', 'ID Proof', 'trim|required|max_length[50]|xss_clean');
//$this->form_validation->set_rules('status', 'Status', 'trim|required|xss_clean');
if ($this->form_validation->run() == FALSE)
{
employee::add_employee_form();
}
else
{
$count=$this->employee_model->add_employee($_POST);
if($count>0)
{
employee::add_employee_form();
}
else{
if(!$site_id) {
redirect(base_url().'employee'); } else {
redirect(base_url().'site_ho_view/'.$site_id);
}
}
}
}
和view / add_employee_form如下
<div class="row">
<div class="col-sm-8">
<div class="box-register">
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-external-link-square"></i>
Employee details
</div>
<?php
$attributes = array('class' => 'form-horizontal');
echo form_open_multipart('employee/add_employee', $attributes);?>
<div class="panel-body">
<?php echo form_error('name'); ?>
<div class="form-group">
<label class="col-sm-3 control-label" for="form-field-3" >
Name
</label>
<div class="col-sm-8">
<input type="hidden" name="confirmed" value="0">
<input type="text" class="form-control" name="name" placeholder="Name" value="<?php echo set_value('name'); ?>">
</div>
</div>
<?php echo form_error('e_code'); ?>
<div class="form-group">
<label class="col-sm-3 control-label" for="form-field-3" >
Employee Code
</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="e_code" placeholder="Employee Code" value="<?php echo set_value('e_code'); ?>">
</div>
</div>
<?php echo form_error('father_name'); ?>
<div class="form-group">
<label class="col-sm-3 control-label" for="form-field-3" >
Father Name
</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="father_name" placeholder="Father Name" value="<?php echo set_value('father_name'); ?>">
</div>
</div>
<?php echo form_error('DOB'); ?>
<div class="form-group">
<label class="col-sm-3 control-label" for="form-field-3" >
Date Of Birth
</label>
<div class="col-sm-8">
<input type="text" class="form-control" id="datepicker" name="DOB" placeholder="Date Of Birth" value="<?php echo set_value('DOB'); ?>" >
</div>
</div>
<?php echo form_error('mobile_no'); ?>
<div class="form-group">
<label class="col-sm-3 control-label" for="form-field-3" >
Mobile No.
</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="mobile_no" placeholder="Mobile Number" value="<?php echo set_value('mobile_no'); ?>">
</div>
</div>
<?php echo form_error('email_id'); ?>
<div class="form-group">
<label class="col-sm-3 control-label" for="form-field-3" >
Email ID
</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="email_id" placeholder="Email ID" value="<?php echo set_value('email_id'); ?>">
</div>
</div>
<?php echo form_error('local_address'); ?>
<div class="form-group">
<label class="col-sm-3 control-label" for="form-field-3" >
Local Address
</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="local_address" placeholder="Local Address" value="<?php echo set_value('local_address'); ?>">
</div>
</div>
<?php echo form_error('permanent_address'); ?>
<div class="form-group">
<label class="col-sm-3 control-label" for="form-field-3" >
Permanent Address
</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="permanent_address" placeholder="Permanent Address" value="<?php echo set_value('permanent_address'); ?>">
</div>
</div>
<?php echo form_error('adhaar_no'); ?>
<div class="form-group">
<label class="col-sm-3 control-label" for="form-field-3" >
Adhaar No.
</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="adhaar_no" placeholder="Adhaar No" value="<?php echo set_value('adhaar_no'); ?>">
</div>
</div>
<?php echo form_error('bank_name'); ?>
<div class="form-group">
<label class="col-sm-3 control-label" for="form-field-3" >
Bank Name
</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="bank_name" placeholder="Bank Name" value="<?php echo set_value('bank_name'); ?>">
</div>
</div>
<?php echo form_error('account_no'); ?>
<div class="form-group">
<label class="col-sm-3 control-label" for="form-field-3" >
Account No.
</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="account_no" placeholder="Account No" value="<?php echo set_value('account_no'); ?>">
</div>
</div>
<?php echo form_error('branch_name'); ?>
<div class="form-group">
<label class="col-sm-3 control-label" for="form-field-3" >
Branch Name
</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="branch_name" placeholder="Branch Name" value="<?php echo set_value('branch_name'); ?>">
</div>
</div>
<?php echo form_error('ifsc_code'); ?>
<div class="form-group">
<label class="col-sm-3 control-label" for="form-field-3" >
IFSC Code
</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="ifsc_code" placeholder="IFSC Code" value="<?php echo set_value('ifsc_code'); ?>">
</div>
</div>
<?php echo form_error('reference_by'); ?>
<div class="form-group">
<label class="col-sm-3 control-label" for="form-field-3" >
Reference By
</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="reference_by" placeholder="Reference By" value="<?php echo set_value('reference_by'); ?>">
</div>
</div>
<?php echo form_error('work_location'); ?>
<div class="form-group">
<label class="col-sm-3 control-label" for="form-field-3" >
Work Location
</label>
<div class="col-sm-8">
<select id="form-field-select-1" class="form-control search-select" name='work_location' style="border:1px;">
<option value="">Select Work Location</option>
<?php foreach($all_construction_sites as $site)
{ ?>
<option value="<?php echo $site['id']; ?>"
<?php if(set_value('work_location') == $site['id']) { ?> selected <?php } ?>
><?php echo $site['name']; ?></option>
<?php } ?>
</select>
</div>
</div>
<?php echo form_error('designation'); ?>
<div class="form-group">
<label class="col-sm-3 control-label" for="form-field-3" >
Designation
</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="designation" placeholder="Designation" value="<?php echo set_value('designation'); ?>">
</div>
</div>
<?php echo form_error('salary'); ?>
<div class="form-group">
<label class="col-sm-3 control-label" for="form-field-3" >
Salary
</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="salary" placeholder="Salary" value="<?php echo set_value('salary'); ?>">
</div>
</div>
<?php echo form_error('joining_date'); ?>
<div class="form-group">
<label class="col-sm-3 control-label" for="form-field-3" >
Joining Date
</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="joining_date" id="datepicker2" placeholder="Joining Date" value="<?php echo set_value('joining_date'); ?>" readonly>
</div>
</div>
<?php echo form_error('pan_no'); ?>
<div class="form-group">
<label class="col-sm-3 control-label" for="form-field-3" >
PAN No
</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="pan_no" placeholder="Pan Number" value="<?php echo set_value('pan_no'); ?>">
</div>
</div>
<?php echo form_error('id_proof'); ?>
<div class="form-group">
<label class="col-sm-3 control-label" for="form-field-3" >
ID Proof
</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="id_proof" placeholder="ID Proof" value="<?php echo set_value('id_proof'); ?>">
</div>
</div>
<?php echo form_error('status'); ?>
<div class="form-group">
<label class="col-sm-3 control-label" for="form-field-3" >
Status
</label>
<div class="col-sm-8">
<select id="form-field-select-1" name="status" class="form-control search-select" style="border:1px;">
<option value="">Select Status</option>
<option value="working"
<?php if(set_value('status') == 'working') { ?> selected <?php } ?>
>Working</option>
<option value="on_leave"
<?php if(set_value('status') == 'on_leave') { ?> selected <?php } ?>
>On Leave</option>
<option value="terminated"
<?php if(set_value('status') == 'terminated') { ?> selected <?php } ?>
>Terminated</option>
<option value="retired"
<?php if(set_value('status') == 'retired') { ?> selected <?php } ?>
>Retired</option>
</select>
</div>
</div>
</div>
</div>
和empmployee_model.php / add_employee如下
function add_employee($data)
{
$query = $this->db->get_where('spar_employee', array('e_code' => $data['e_code']
));
$count = $query->num_rows();
if($count>0)
{
return $count;
}
else{
$data['created'] = date("Y-m-d");
$data['last_user'] = $this->session->userdata('user_id');
$this->db->insert('spar_employee', $data);
}
}
请帮帮我
答案 0 :(得分:1)
您可以设置规则以检查值是否在table.field中是唯一的。这就是我要做的事情:
$this->form_validation->set_rules('e_code', 'Employee Code', 'trim|required|max_length[20]|xss_clean|is_unique[spar_employee.e_code]');
来源:https://ellislab.com/codeigniter/user-guide/libraries/form_validation.html#rulereference
编辑:作为备注,您还可以使用以下内容设置自定义错误消息:
$this->form_validation->set_message('is_unique', 'The value you provided in the %s field is not unique. It already exists for another employee.');