我有一个上传表单,它有验证检查项目是否是有效的 CSS 文件。我确实尝试上传 .css 文件,但验证失败。
这是我尝试验证控制器上的代码的地方:
private function _queueArticle($ref = NULL)
{
$input = Input::all();
$vrules = Config::get('validation.queue_article');
//validate inputs
$validation = Validator::make($input, $vrules);
if ( $validation->fails() ) {
return ( $ref === NULL ) ?
Redirect::to($redir_path)->withErrors($validation)->withInput() :
Redirect::to($redir_path)->withErrors($validation);
}
}
这是什么$vrules
:
'queue_article' => array(
'title' => 'required|max:255',
'body' => 'required',
'slug' => 'unique:articles,slug',
'hero' => 'required|image',
'custom_css' => 'mimes:css'
)
我相信它失败了,因为它使用的是 PHP finfo
,众所周知,它无法检测到 css text/css
,而不是text/plain
. Symfony 是 Laravel 的“伴奏代码”(不知道这个术语),不是有自己的验证类,可以成功清除 CSS 的本质吗?
更重要的是,我能做些什么呢?
更新:错误消息显示我的自定义错误“请上传有效的 CSS 文件。” 从 app/lang/en/validation.php:
'custom' => array(
'password_old' => array( 'required' => 'Please enter your current password.' ),
'password' => array( 'confirmed' => 'The new passwords don\'t match.' ),
'hero' => array(
'required' => 'A header image is required.',
'image' => 'The header file you included is not valid. Please upload a valid image.'
),
'custom_css' => array('mimes' => 'Please upload a valid CSS file.')
)
更新 2:我检查var_dump($validation)
并显示数组messages
和failedRules
. 它还显示了具有 mime 类型的 CSS 文件为text/css
. 一切都很好,嗯,除了当我var_dump($validation->fails())
返回一个布尔值时true
。
将根据要求提供更多信息。
谢谢!