2016-08-28 6 views
-2

이 컨트롤러에 대한보기가 없습니다. 변수 확인을 위해 Laravel 유효성 검사를 사용하고 싶습니다. 컨트롤러에서 문자열을 반환하여 사용자 정의 오류를 표시 나는 이런 식으로 뭔가 원하는Laravel 5.2 컨트롤러의 유효성 검사

if(strlen($username) < 4) return '{"r": "US","msg": "username is short"}'; 
    if(strlen($username) > 64) return '{"r": "UL","msg": "username is long"}'; 
    if(preg_match("/(\S*\d+\S*[[:alpha:]]+\S*)|(\S*[[:alpha:]]+\S*\d+\S*)/", $password)) return '{"r": "P","msg": "wrong password"}'; 
    if(strlen($name) > 32) '{"r": "N","msg": "wrong name"}'; 
    if(strlen($address) > 200) '{"r": "A","msg": "wrong address"}'; 

(나는 ... 난 그냥 문자열을 반환보기, 블레이드, 세션을 사용하지 말아).

'username' => 'required|min:4|max:64|unique:users|regex:/[a-zA-Z]+[a-zA-Z0-9_]*/', 
    'email' => 'required|unique:users|email|min:8', 
    ... 

답변

1

당신은 할 수 있습니다 Validator 파사드를 사용하여 컨트롤러의 요청을 확인하십시오. 또한 자신의 메시지로이를 확장 할 수 있습니다.

$validator = Validator::make($request->all(), [ 
    'username' => 'required|min:4|max:64|unique:users|regex:/[a-zA-Z]+[a-zA-Z0-9_]*/', 
    'email' => 'required|unique:users|email|min:8', 
], 
[ 
    'email.required' => 'Email is required', 
    'username.unique' => 'Username is taken' 
]); 

당신도이 검증은 이제

if ($validator->fails()) { 
    return redirect()->route('register') 
     ->withErrors($validator) 
     ->withInput(); 
} 

실패하면 대신 이러한 오류 메시지에 대한 액세스를 필요로하는 경우, 무엇을 결정할 수 있습니다, 당신은 할 수 있습니다 :

if($validator->fails()) { 
    $errors = $validator->errors(); 
} 

을 지금 당신에게 정의한 오류 메시지에 액세스 할 수 있고, 재정의하지 않으면 기본값 메시지에 액세스 할 수 있습니다.

+0

Tanx. 하지만 어떤 변수에 오류가 있거나 어떤 오류가 있는지 이해하려면 어떻게해야합니까? –