2014-09-23 69 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目錄拖到另一個目錄,然後我得到了和你一樣的驗證響應。該修復只是將其移回資源目錄。