Laravel 4不会显示默认错误消息

时间:2014-04-28 20:03:13

标签: laravel laravel-4

我是Laravel的新手,我一直在使用这个book。它表示它有一些默认验证错误消息,例如:

  • 用户名字段是必填字段。
  • 电子邮件字段是必填字段。
  • 密码字段是必需的。

出于某种原因,这些消息不会出现,而是显示的内容:

  • validation.email
  • validation.min.string
  • validation.confirmed

为什么默认错误消息不会显示? (我知道我可以做一些自定义的)

这是我的控制者:

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);    

}

1 个答案:

答案 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);