2016-08-28 12 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。どの変数にエラーがあるのか​​、どのようなエラーがあるのか​​をどのように理解できますか? –

関連する問題