0
私はLaravelにおける新たなんだと私は、電子メール(少数派)、または自分の電話番号(過半数)のいずれかでログインするユーザーを必要とするアプリケーションを開発しています。現在、ユーザーが電話番号を提供できるように、変更された登録でデフォルトのLaravel認証を使用しています。私が見つけた解決策は、電子メールではなくユーザー名でログインする方法を示しています。どのように私はこれを達成することができますか?私はここではPHP 7.0Laravel 5.2で、電子メールや電話のいずれかでログイン
でLaravel 5.2を実行している私のUserモデルである:ここで
protected $fillable = ['firstname', 'lastname', 'email','phone','account_type','county','sub_county', 'password',];
protected $hidden = ['password', 'remember_token',];
は私AuthenticateUsers.phpです:私のログインフォームで
/**
* Get the needed authorization credentials from the request.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
protected function getCredentials(Request $request)
{
return $request->only($this->loginUsername(), 'password');
}
/**
* Validate the user login request.
*
* @param \Illuminate\Http\Request $request
* @return void
*/
protected function validateLogin(Request $request)
{
$this->validate($request, [
$this->loginUsername() => 'required', 'password' => 'required',
]);
}
/**
* Get the login username to be used by the controller.
*
* @return string
*/
public function loginUsername()
{
return property_exists($this, 'username') ? $this->username : 'email';
}
メール入力フィールド:
あなたのloginUsername
機能で
<div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
<label class="col-md-4 control-label">E-Mail Address</label>
<div class="col-md-6">
<input type="text" class="form-control" name="email" value="{{ old('email') }}">
@if ($errors->has('email'))
<span class="help-block">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
</div>
</div>
@if ($errors->has('email'))
<span class="help-block">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
</div>
</div>
'loginUsername()'メソッドは、それが呼び出すメソッドで利用可能ですので、あなたは 'loginUsername'メソッドに要求インスタンスを渡すことができ – jszobody
あなたがそこにそれを持っている方法request' $'へのアクセス権を持っていません'AuthenticateUsers'クラスのものです。 –
'$ request'パラメータを' loginUsername() '関数に渡しました。また、ThrottlesLogins.phpで' protected function getThrottleKey(Request $ request)を変更しました。 { return mb_strtolower($ request-> input ($ this-> loginUsername($ request)))。 '|'。$ request-> ip(); } '。私は自分のメールアドレスでログインすることができました。電話入力を受け入れるように**ビュー/モデル/コントローラ**を変更するにはどうすればよいですか? @Oluwafemi – Ben100