我是Laravel的新手,我一直在使用这个book。它表示它有一些默认验证错误消息,例如:
出于某种原因,这些消息不会出现,而是显示的内容:
为什么默认错误消息不会显示? (我知道我可以做一些自定义的)
这是我的控制者:
public function sign_up()
{
// Fetch all request data.
$user = new User;
$data = Input::all();
$validator = $user->isUserValid($data);
if ($validator->passes()) {
$user->email = $data['email'];
$user->password = $data['password'];
$user->save();
echo('Data was saved.');
}else{
// Collect the validation error messages object.
return Redirect::to('/sign-up')->withInput()->withErrors($validator);
}
}
使用模型中使用的此方法:
public function isUserValid($data){
// Build the validation constraint set.
$rules = array(
'email' => 'email|required|unique:users',
'password' => 'required|min:5|confirmed'
);
// Create a new validator instance.
return $validator = Validator::make($data, $rules);
}
答案 0 :(得分:2)
如果您的错误消息包含validation.email(验证本地化的关键),那么您的laravel应用程序无法加载或无法访问本地化文件夹。
检查您是否已删除app/lang/en
,并且应该有一个名为validation.php
的文件,其中包含所有默认验证回复。
或者您也可以set the messages on the fly,但使用本地化文件validation.php
会更好。无论如何,你是这样走的:
$messages = array(
'required' => 'The :attribute field is required.',
);
$validator = Validator::make($input, $rules, $messages);