我正在尝试使用this教程验证注册表单。但是,在提交时,我收到以下错误消息:
Laracasts \ Validation \ FormValidationException
Validation failed
请注意,我尚未禁用我的前端验证进行测试,因此会自动验证这些值。但它仍然失败。这是我的相关代码:
# RegistrationForm.php
<?php namespace forms;
# app/validators.php
use Laracasts\Validation\FormValidator;
class RegistrationForm extends FormValidator{
protected $rules =[
'first_name' => 'required|alpha|max:25',
'last_name' => 'required|alpha|max:25',
'username' => 'required|unique:k_users|max:45',
'password' => 'required|confirmed|min:8',
'email' => 'required|unique:k_users|email',
'Gender' => 'required|in:m,f,o',
'year' => 'required|integer|min:1900|max:2014',
'country' => 'required',
'location' => 'max:50|alpha_spaces',
];
}
RegisterController中的存储功能
public function store()
{
$input = Input::only('first_name','last_name', 'username','password','email','Gender','year','country','location');
try
{
$this->registrationForm->validate($input);
Register::saveFormData();
return Redirect::to('hello');
}
catch (FormValidationException $e)
{
return Redirect::back()->withInput()->withErrors($e->getErrors());
}
}
答案 0 :(得分:3)
如果您的意思是没有抓住您的例外:
catch (FormValidationException $e)
是因为您可能正在使用命名空间,因此您有两个选择:
1)将完整的命名空间添加到您的例外名称
catch (\Laracasts\Validation\FormValidationException $e)
2)在文件顶部使用
use Laracasts\Validation\FormValidationException;
你可以保持原样:
catch (FormValidationException $e)