私は、次の方法でこれを近づいてきました:あなたのフィールドの名前と期待値が「アクティブ」のためには何でも出て代入
/*
LoginController.php
*/
/**
* Override default login username to be used by the controller.
*
* @return string
*/
public function username()
{
return 'username';
}
/**
* Override default validation of the user login request.
*
* @param \Illuminate\Http\Request $request
*
* @return void
*/
protected function validateLogin(Request $request)
{
$this->validate($request, [
$this->username() => [
'required',
'min:4',
'max:30',
'regex:/^[\S]*$/',
Rule::exists('users')->where(function ($query)
{
$query->where('active', 1);
})
],
'password' => 'required|min:6|max:100'
]);
}
は、ユーザーがアクティブであるかどうかに応じて、検証することができます/有効にします。既にこれを行ったことを述べましたが、この場合、検証エラーは「存在」ルールの検証メッセージにもなります。私のアプリケーションでは、実際にユーザーがログインに失敗した理由を気にする必要はありませんが、検証メッセージを確認することで、あなたのケースでは十分であると思いますか?
お返事ありがとうございます。私のアプリケーションの 'user'の詳細は私のデータベースに保存されていません。ユーザーは別のユーザーシステム(内部アプリケーション、他のすべてのアプリケーションで共有)に保存されます。すべてのユーザー関連の操作はAPIを介して行われます。したがって、私は '存在する'ルールを使うことはできません。 –
とにかく、私は 'validateLogin'関数で何かをすることによって考えることができます。 –