Как получить ошибки проверки в массиве? - PullRequest
1 голос
/ 18 августа 2011

Я занимаюсь разработкой REST API с использованием Codeigniter. Мне нужно иметь все сообщения об ошибках от проверки формы в формате массива, чтобы Я могу легко ответить либо в формате JSON, либо в формате XML.

Сейчас Codeigniter доставляет сообщения об ошибках с <p> в качестве разделителей (см. Ниже) но это не хорошо для API на основе REST.

<p>There was an error with this item</p>

Как получить ошибки в массиве?

Благодарен за все комментарии!

Ответы [ 2 ]

1 голос
/ 18 августа 2011

Библиотека проверки формы хранит ошибки в массиве и перебирает их, генерируя строку ошибок. Они хранятся в закрытой переменной с именем $_error_array. Вы можете расширить библиотеку простым методом, который возвращает массив ошибок.

class MY_Form_validation extends CI_Form_validation
{
    function get_error_array()
    {
        return $this->_error_array;
    }
}

Я предполагаю, что вы знакомы с расширением основных библиотек CI, но это расширение библиотеки проверки формы даст вам метод для возврата ошибок в виде массива со значением атрибута name в качестве ключа и сообщения в качестве значения. Я протестировал его на одном из моих проектов, и он работал нормально.

1 голос
/ 18 августа 2011

Вы можете легко преобразовать это:

/**
 * @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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...