2016-05-11 7 views
2

私はEX用のユーザー登録フォーム変更のリダイレクト - laravel

を検証しています:(Requests validation class)

class UserCreateAccountRequest extends Request 
{ 

    public function authorize() 
    { 
     return true; 
    } 

    public function rules() 
    { 
     return [ 
      'email' => 'required|unique:users,email', 
      'password' => 'required|min:6|max:32' 
     ]; 
    } 

} 

メールがはすでに私がにしたいがパスワードにリダイレクト登録されている場合リセットページ。

どのように私はコントローラに検証を入れずにリクエスト検証クラスを使用してこれを達成できますか?メールが既に存在するかどうかを認証ファンクションチェックインサイド

答えて

1

public function authorize() 
{ 
    $email = Request::input('email'); 

    $result = User::where('email',$email) 
      ->exists(); 

    if($result) 
    { 
     return false; 
    } 
    return true; 
} 

これがfalseを返す場合、forbiddenResponse機能を使用すると、その機能を含める必要があり、したがって、解雇され、その内のページにリダイレクトすることができます欲しいです。この関数は、電子メールがすでに存在する場合のみfalseを返します。以下ご参照all.Forだ

public function forbiddenResponse() 
{ 
    return redirect('password_reset'); 
} 

は、Requestクラスの構造である

<?php namespace App\Http\Requests; 

use Illuminate\Foundation\Http\FormRequest; 
use Response; 

class FriendFormRequest extends FormRequest 
{ 

public function rules() 
{ 
    return [ 
     'first_name' => 'required', 
     'email_address' => 'required|email' 
    ]; 
} 

public function authorize() 
{ 
    // Only allow logged in users 
    // return \Auth::check(); 
    // Allows all users in 
    return true; 
} 

// OPTIONAL OVERRIDE 
public function forbiddenResponse() 
{ 
    // Optionally, send a custom response on authorize failure 
    // (default is to just redirect to initial page with errors) 
    // 
    // Can return a response, a view, a redirect, or whatever else 
    return Response::make('Permission denied foo!', 403); 
} 

// OPTIONAL OVERRIDE 
public function response() 
{ 
    // If you want to customize what happens on a failed validation, 
    // override this method. 
    // See what it does natively here: 
    // https://github.com/laravel/framework/blob/master/src/Illuminate/Foundation/Http/FormRequest.php 
} 

}