2014-09-23 10 views
7

Mam problemy z próbą uzyskania formularza sprawdzania poprawności działającego w języku Laravel, co jest dziwne, ponieważ zwykle po prostu działa.Laravel - komunikaty o błędach nie tłumaczące na rzeczywisty komunikat o błędzie, zacznij od "sprawdzania poprawności".

W moim modelu użytkownika stworzyli zasady walidacji:

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

W moim kontroler użytkownika zdefiniować działania tylko wtedy, gdy walidacja przechodzi, jeśli nie zostaje przekierowany z powrotem z błędami:

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

następujące błędy wystąpiły:

W widoku i wyświetli błędy jeśli takowe istnieją:

@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 

Problem, który mam jest, że wyjście z tego przy składaniu pustego formularza jest:

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

Zamiast:

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. 

Jeśli ktoś mógłby sugerować, dlaczego tak się dzieje i co Brak mi tego, byłoby to bardzo docenione!

+0

Posiadanie tego samego problemu w Laravel 5 i nie wiem, dlaczego ... – Lloople

+0

Ja też! W Laravel 5, ale tylko w niektórych środowiskach/serwerach –

+0

@Lloople Dość smutne, właściwie mnie zniechęciło Laravel ... Nieźle, bo uczę się więcej Javascript teraz :) Jeśli znalazłeś odpowiedź, proszę to napisać? –

Odpowiedz

6

Jeśli jest to dla ciebie pracował wcześniej należy sprawdzić, czy masz wiadomości zdefiniowane w app\lang\en\validation.php lub przez przypadek zmieniłeś locale z aplikacji i nie definiuje komunikaty do niego. Istnieje wiele możliwości.

+0

Hej, dziękuję za odpowiedź. Używam domyślnych komunikatów o błędach, które są rzeczywiście zdefiniowane w pliku validation.php. Naprawdę dziwne, wszystko wydaje się być w 100% poprawne, ale walidacja nie przekłada błędów na wiadomości? –

4

miałem podobny problem, a problem dla mnie było to, że przypadkowo usunięte zasobów/lang/pl/validation.php

2

miałem podobny problem, kiedy postawił zarówno moje ustawienia regionalne i tworzenie kopii zapasowych locale do ustawień narodowych, które nie miały pliku sprawdzania poprawności w app.php. Spróbuj ustawić lokalizację kopii zapasowej na pl lub taką, która na pewno istnieje.

1

Miałem ten problem. Sprawdź katalog lang, należy go umieścić w katalogu resource.

Przeciągnąłem katalog lang do innego katalogu, a następnie otrzymałem taką samą odpowiedź walidacyjną jak ty. Poprawka polegała tylko na przeniesieniu jej z powrotem do katalogu zasobów.

Powiązane problemy