我正在使用Codeigniter开发REST API。 我需要以数组格式从表单验证中获取所有错误消息 我可以轻松地使用JSON或XML进行响应。
现在Codeigniter以<p>
作为分隔符传递错误消息(见下文)
但这对基于REST的API来说并不好。
<p>There was an error with this item</p>
如何在数组中获取错误?
感谢所有输入!
答案 0 :(得分:1)
您可以轻松转换它:
/**
* @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;
}
答案 1 :(得分:1)
表单验证库将错误存储在数组中并循环遍历它们以生成错误字符串。它们存储在名为$_error_array
的私有变量中。您可以使用返回错误数组的简单方法扩展库。
class MY_Form_validation extends CI_Form_validation
{
function get_error_array()
{
return $this->_error_array;
}
}
我假设您熟悉扩展核心CI库,但是表单验证库的这个扩展将为您提供一种方法,将错误作为数组返回,并将name属性的值作为键,将消息作为值。我在我的一个项目上测试了它并且工作正常。