在Kohana上传文件时的自定义验证规则消息

时间:2014-02-03 13:24:11

标签: php kohana kohana-orm kohana-3.3

我想在使用Kohana 3.3上传文件失败验证时创建自定义错误消息。此代码获取规则并检查它们:

$image = $_FILES['image'];

$rules = Model_Image::get_file_rules();
$validation = Validation::factory($_FILES)->rules('img_file', $rules);

if(!$validation->check())
{
    throw new ORM_Validation_Exception('', $validation);
}

if($image['size'] > 0)
{
    // upload
}

规则:

public static function get_file_rules()
{
    return array(
        array('Upload::valid'),
        array('Upload::not_empty', array(':value')),
        array('Upload::type', array(':value', array('jpg'))),
        array('Upload::size', array(':value', '10M'))
    );
}

如果未添加文件,则会抛出ORM_Validation_Exception。当我print_r($e->errors)时,我得到以下内容:

Array ( [img_file] => .img_file.Upload::not_empty )

我想创建一个自定义错误消息。目前我的消息文件/messages/image.php包含以下内容:

return array(
    'filename_unique' => 'Filename must be unique',


    'img_file' => array(
        'Upload::not_empty' => 'Add something!!',
    )
);

如何为此创建自定义消息?

1 个答案:

答案 0 :(得分:0)

正如the Validation guide中所述,您应该使用$validation->errors()

如果您要将邮件存储在/messages/image.php中,则必须编写throw new ORM_Validation_Exception('', $validation->errors('image'));以确保Kohana正在查找包含您的邮件的好文件。

API Browser中的更多信息。