2014-09-23 64 views
7

我有问题试图在Laravel工作,这很奇怪,因为它通常只是起作用。Laravel - 错误消息没有转化为实际的错误消息,从“验证”开始。

在我的用户模型,我创建的规则验证:

public function postCreate() { 
    $validator = Validator::make(Input::all(), User::$rules); 

    if ($validator->passes()) { 
     $user = new User; 
     $user->firstname = Input::get('firstname'); 
     $user->lastname = Input::get('lastname'); 
     $user->email = Input::get('email'); 
     $user->password = Hash::make(Input::get('password')); 
     $user->telephone = Input::get('telephone'); 
     $user->save(); 

     return Redirect::to('users/signin') 
      ->with('message', 'Thank you for creating a new account. Please sign in.'); 
    } 

    return Redirect::to('users/create-account') 
     ->with('message', 'Something went wrong') 
     ->withErrors($validator) 
     ->withInput(); 
} 

public static $rules = array(
    'firstname'=>'required|min:2|alpha', 
    'lastname'=>'required|min:2|alpha', 
    'email'=>'required|email|unique:users', 
    'password'=>'required|alpha_num|between:8,12|confirmed', 
    'password_confirmation'=>'required|alpha_num|between:8,12', 
    'telephone'=>'required|between:10,12', 
    'admin'=>'integer' 
); 

在我的用户控制器仅如果验证通过,如果没有用户与错误重定向回我定义操作已经发生

以下错误:

在视图如果它们存在我显示错误:

@if($errors->has()) 
    <div id="form-errors"> 
    <p>The following errors have occurred:</p> 

    <ul> 
     @foreach($errors->all() as $error) 
      <li>{{ $error }}</li> 
     @endforeach 
    </ul> 
    </div><!-- end form-errors --> 
@endif 

,我有是,这个提交一个空表单时输出的问题:

validation.required 
validation.required 
validation.required 
validation.required 
validation.required 
validation.required 

相反的:

The firstname field is required. 
The lastname field is required. 
The email field is required. 
The password field is required. 
The password confirmation field is required. 
The telephone field is required. 

如果任何人都可以说明为什么这种情况正在发生或什么我很抱歉,这将不胜感激!

+0

在Laravel 5中有同样的问题,不知道为什么... – Lloople 2015-03-11 21:49:25

+0

我也是!在Laravel 5中,但仅限于某些环境/服务器 – 2015-03-16 15:40:40

+0

@Lloople相当伤心,实际上让我失望Laravel ......不错,因为我现在在学习更多Javascript :)如果您找到了答案,请尽管发布它? – 2015-04-03 08:27:17

回答

6

如果以前那么对你的工作,你应该检查,如果你有在app\lang\en\validation.php定义的消息或碰巧你已经改变了应用程序的区域并没有为它定义的消息。有很多可能性。

+0

嘿,谢谢你的回复。我使用的确是在validation.php文件中定义的默认错误消息。真奇怪,一切似乎都是100%正确的,但验证不会将错误转化为消息? – 2014-09-24 05:18:54

4

我也有类似的问题,这个问题对我来说是我不小心删 资源/郎/ EN/validation.php

2

我有一个类似的问题时,我已经设置我的两个区域设置和备份区域设置为app.php中没有验证文件的区域设置。尝试将您的备份语言环境设置为en或您确定存在的语言环境。

1

我有这个问题。 检查lang目录,它应该放置在resource目录中。

我把lang目录拖到另一个目录,然后我得到了和你一样的验证响应。该修复只是将其移回资源目录。