回答編集履歴

1 誤字を修正

motuo

motuo score 3000

2017/03/15 10:12  投稿

そのままの回答、というわけではないですがログインのValidatorについては私は下記の様に実装しています。ログインをするのであれば標準で使えるAuth::Attemptがおすすめです。
そのままの回答、というわけではないですがログインのValidatorについては私は下記の様に実装しています。
ログインを実装するのであれば標準で使えるAuth::Attemptがおすすめです。
validatorServiceProvider.php
```PHP
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App\Services\CustomValidator;
/**
* カスタムバリデーションを管理する
*/
class ValidatorServiceProvider extends ServiceProvider
{
   /**
    * Bootstrap the application services.
    *
    * @return void
    */
   public function boot()
   {
       /**
        * カスタムバリデータ
        * (バリデータにてコンストラクタインジェクションをしたい時は、下記でServiceをmakeして引数に渡すこと)
        */
       \Validator::resolver(function($translator,$data,$rules,$messages){
           $customAttributes = array();
           return new CustomValidator($translator,$data,$rules,$messages,$customAttributes);
       });
   }
   /**
    * Register the application services.
    *
    * @return void
    */
   public function register()
   {
       //
   }
}
```
CustomValidator.php
```PHP
<?php
namespace App\Services;
use Illuminate\Validation\Validator;
use Auth;
/**
* カスタムバリデータ
*
* @author XXXXXX
*/
class CustomValidator extends Validator{
   /**
    * ユーザーIDとパスワードにてログインが出来るかどうかチェックする。
    * @param type $attribute 入力されたname
    * @param type $value 入力された値
    * @param type $parameters パラメータ(空)
    * @return boolean
    */
   public function validateLogin($attribute,$value,$parameters){
       return Auth::attempt(['Name'=>$value,'password'=>$this->getValue('password')]);
   }
}
```
loginController(抜粋)
```PHP
   /**
    * ログインボタンが押下された時の動作。エラーが無ければメインメニューへ遷移
    * @param LoginRequest $request
    * @return type
    */
   public function login(Request $request){
       $this->validate($request,[
           'userId' => 'required|login',
           'password' => 'required',
       ]);
       return redirect('/mainmenu');     
   }
```でs
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る