1
私のプロジェクトで悩んでいます。私は、ユーザーが電子メールまたは携帯電話でログインできるようにしたい。これは完全に正常に動作します。しかし、今私は、アクティブなユーザーだけが電子メールまたは携帯電話でログインできるようにしたい。私はデータベースにアクティブなフィールドを持っています。このフィールドは、ユーザーがアクティブな場合は1に設定され、ユーザーがアクティブでない場合は0に設定されます。ただし、これを行う方法はわかりません。みんな私がこれを解決するのを助けてください。私はlaravel 5.3を使用しています。あなたはまた、ユーザーの電子メールとパスワードに加えて、認証クエリに余分な条件を追加することができますラーヴェルで、ラーベル認証が秘密裏に機能していません。5.3
<?php
namespace App\Http\Controllers\Auth;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
class LoginController extends Controller
{
use AuthenticatesUsers;
protected $redirectTo = '/home';
public function __construct()
{
$this->middleware('guest', ['except' => 'logout']);
}
protected $username = 'email';
public function loginNameOrEmail(Request $request)
{
$field = filter_var($request->input('email'), FILTER_VALIDATE_EMAIL) ? 'email' : 'mobile';
$request->merge([$field => $request->input('email')]);
$this->username = $field;
return $this->login($request);
}
public function username()
{
return $this->username;
}
protected function authenticated($request, $user)
{
if($user->is_admin == 1) {
return redirect()->intended('dashboard');
}
return redirect()->intended('/home');
}
}
私はこれを追加する場合は、FatalErrorExceptionがLoginController.phpライン47にすることを私にエラーを与える:。 クラスが見つかりません「のApp \のHttp \コントローラは認証\認証を\」@アミット –
どのように私は '上書きする可能性がログインメソッド。あなたは私にいくつかの例を教えてくれますか? –
これを上書きするとエラーになり、メールや携帯ではログインできません。 –