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