0
我使用代碼點火器form_validation類來執行一些驗證,因爲codeigniter驗證所有字段,然後顯示所有錯誤的列表,我需要限制這隻顯示第一個錯誤發生。只顯示第一個錯誤
例如,
如果我有2(電子郵件,消息)字段required
驗證到位,並且如果我將兩個字段留空。我需要codeigniter只顯示錯誤電子郵件字段是必需的。
我使用代碼點火器form_validation類來執行一些驗證,因爲codeigniter驗證所有字段,然後顯示所有錯誤的列表,我需要限制這隻顯示第一個錯誤發生。只顯示第一個錯誤
例如,
如果我有2(電子郵件,消息)字段required
驗證到位,並且如果我將兩個字段留空。我需要codeigniter只顯示錯誤電子郵件字段是必需的。
據我所知,CI不來這個開箱即用,但它是很容易實現:
首先,(如果沒有這個文件已經)在應用程序中創建文件MY_Form_validation.php
/庫/具有以下:
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
class MY_Form_validation extends CI_Form_validation {
public function __construct($rules = array())
{
parent::__construct($rules);
}
}
然後將以下方法添加到類:
/**
* First Error
*
* Returns the first error messages as a string, wrapped in the error delimiters
*
* @access public
* @param string
* @param string
* @return str
*/
public function first_error($prefix = '', $suffix = '')
{
// No errrors, validation passes!
if (count($this->_error_array) === 0)
{
return '';
}
if ($prefix == '')
{
$prefix = $this->_error_prefix;
}
if ($suffix == '')
{
$suffix = $this->_error_suffix;
}
// Generate the error string
$str = '';
foreach ($this->_error_array as $val)
{
if ($val != '')
{
return $prefix.$val.$suffix."\n";
}
}
return $str;
}
這樣,您就可以與$this->form_validation->first_error()
或者訪問此,您可以創建(如果該文件不存在)創建一個名爲MY_form_helper.php
在應用程序/傭工文件類似於validation_errors()
輔助函數/
,然後加入以下代碼:
/**
* First Validation Error String
*
* Returns the first error associated with a form submission. This is a helper
* function for the form validation class.
*
* @access public
* @param string
* @param string
* @return string
*/
if (! function_exists('first_validation_error'))
{
function first_validation_error($prefix = '', $suffix = '')
{
if (FALSE === ($OBJ =& _get_validation_object()))
{
return '';
}
return $OBJ->first_error($prefix, $suffix);
}
}
希望這有助於!
如果您添加一些代碼來更好地解釋您的問題,那將是最好的。 – 2014-11-23 12:04:51