Php 如何获取数组中的验证错误?
我正在使用Codeigniter开发一个RESTAPI。 我需要将表单验证中的所有错误消息以数组格式显示,以便 我可以轻松地用JSON或XML响应 现在Codeigniter正在传递带有分隔符的错误消息,如下所示 但这对于基于REST的API来说并不好Php 如何获取数组中的验证错误?,php,codeigniter,validation,Php,Codeigniter,Validation,我正在使用Codeigniter开发一个RESTAPI。 我需要将表单验证中的所有错误消息以数组格式显示,以便 我可以轻松地用JSON或XML响应 现在Codeigniter正在传递带有分隔符的错误消息,如下所示 但这对于基于REST的API来说并不好 <p>There was an error with this item</p> 如何获取数组中的错误 感谢所有的投入 您可以轻松地对其进行变换: /** * @param $errors string * @ret
<p>There was an error with this item</p>
如何获取数组中的错误
感谢所有的投入 您可以轻松地对其进行变换:
/**
* @param $errors string
* @return array
*/
function transformErrorsToArray ($errors) {
$errors = explode('</p>', $errors);
foreach ($errors as $index => $error) {
$error = str_replace('<p>', '', $error);
$error = trim($error);
// ... more cleaning up if necessary
$errors[$index] = $error
}
return $errors;
}
表单验证库将错误存储在一个数组中,并在其中循环生成错误字符串。它们存储在名为$\u error\u array的私有变量中。可以使用返回错误数组的简单方法扩展库
class MY_Form_validation extends CI_Form_validation
{
function get_error_array()
{
return $this->_error_array;
}
}
我假设您熟悉扩展核心CI库,但是表单验证库的此扩展将为您提供一种方法,以数组的形式返回错误,其中name属性的值作为键,消息作为值。我在我的一个项目上进行了测试,效果很好。Tags。它们没有标题。可能Codeigniter表单模块不够灵活,无法满足您的需要。用更灵活的实现取代它是否是您的一个选择?也许。你知道有什么好的选择吗?很有趣!这样的扩展看起来怎么样?酷!我如何在控制器中使用它?没关系。明白了,非常感谢!这是我在控制器中访问它的方式:$This->form\u validation->get\u error\u array这段代码在本地服务器Mac上运行得很好,但在远程服务器上我得到了一个500错误。可能有什么问题?看起来不错,但它在阵列的末尾添加了一个空插槽。我怎么能不说呢?数组[0]=>数字字段是必需的。[1] =>与公认的答案相比,我更喜欢这个答案,因为它不需要您更改CodeIgniter核心代码