Могу ли я отформатировать мои строки проверки с соответствующей информацией в Kohana 3? - PullRequest
0 голосов
/ 20 сентября 2010

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

return array(
    'not_empty' => ':field must not be empty.',
);

Очевидно, :field заменяется именем поля.

Теперь я проверяю загрузку изображения. Очевидно, я разрешаю только JPG, JPEG, GIF и PNG.

У меня сообщение об ошибке настроено так.

return array(
    'photo' => array(
        'Upload::type' => 'You must upload an image file (JPG, JPEG, GIF, PNG)'
    )
);

Я так же пользуюсь вспомогательным средством проверки Коханы.

$input->rules('photo', array(
'Upload::type' => array('Upload::type' => array('jpg', 'jpeg', 'png', 'gif'))
));

Есть ли способ, которым я могу использовать эти принятые расширения в моей строке ошибки, например, как ...

return array(
    'photo' => array(
        'Upload::type' => 'You can only upload files of :types'
    )
);

Ответы [ 2 ]

3 голосов
/ 20 сентября 2010

Кохана имеет эту функцию "из коробки":)

Итак, вы должны добавить что-то вроде этого:

// messages/validate.php
return array(
   'upload::type' => ':field should be one of the following types: [:param1]', 
);
3 голосов
/ 20 сентября 2010

вы можете получить доступ к параметрам: param1: param2 и т.д.использовать обратный вызов в качестве псевдонима для правила, затем взять список разрешенных форматов и отправить их в сообщение вручную, используя implode ().

ex:

public function valid_type(Validate $array, $field, $formats)
{
    $params = $formats;
    array_unshift($params, $array[$field]);
    if ( ! call_user_func_array(array('Upload', 'type'), $params))
    {
        $array->error($field, 'Upload::type', array('types' => $formats));
    }
}
...