3
我有一個問題,顯示我的錯誤信息來自form_validation上的set_message。請參閱下面我的代碼的一部分。Codeigniter顯示set_message不工作
這些都是一些部分我的觀點:
<div class="uk-margin">
<?php if (form_error('name')){ ?>
<span class="reg_error"><?php echo form_error('name'); ?></span>
<?php } ?>
<div class="uk-form-controls">
<input class="uk-input" id="name" name="name" type="text" placeholder="Full Name">
</div>
</div>
這裏是我的控制器:
$this->form_validation->set_rules('name', 'Full Name', 'trim|callback_alpha_space');
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');
$this->form_validation->set_rules('password', 'Password', 'trim|required');
if ($this->form_validation->run() == FALSE){
$this->load->view('register');
}else{
....
}
而且我下的一個功能:
function alpha_space($str){
if (!$str){
$this->form_validation->set_message('alpha_space', 'The {field} field is required.');
return FALSE;
}else if (!preg_match("/^([-a-z_ ])+$/i",$str)){
$this->form_validation->set_message('alpha_space', 'The {field} field can not contain number or special characters.');
return FALSE;
}else{
return TRUE;
}
}
什麼情況是, ,規則正在工作,但不知何故消息沒有被顯示。感謝您的幫助。謝謝!
您對規則的運行有多肯定?即你如何確定他們這樣做?我敢打賭,規則本身並沒有被調用(這也意味着它會失敗)。 – Narf
原因如果規則不起作用,它應該被重定向到其他頁面,但會發生什麼規則,因爲它重定向到相同的頁面(它應該顯示所謂的錯誤信息) –
我沒有看到在所顯示的代碼中重定向,但無論如何 - 如果規則是*聲明的,但未調用*,這將導致驗證失敗 - 將您留在錯誤頁面上,但不顯示錯誤。這並不意味着規則奏效,而是意味着失敗。 – Narf