私はLaravel 5.3とphp artisanコマンドmake:auth
を使用して登録とログインを足場にしています。ユーザーが登録した後、「自分のメールを確認する」のようなページにリダイレクトしたいので、既定のように自動的にユーザーにログインさせたくありません。Laravel 5.3登録後のユーザのリダイレクト
RegisterControllerのcreate()
メソッドでは、User(私は自動的にログインする場所であると仮定します)を返す代わりに、別のビューにリダイレクトしたいと思います。
protected function create(array $data)
{
$confirmation_code = str_random(30);
Mail::to($data['email'])->send(new Company($confirmation_code));
User::create([
'confirmation_code' => $confirmation_code,
'password' => bcrypt($data['password']),
'email' => $data['email']
]);
return redirect()->route('verifyemail');
}
しかし、私はこのエラーを取得する:Argument 1 passed to Illuminate\Auth\SessionGuard::login() must implement interface Illuminate\Contracts\Auth\Authenticatable, instance of Illuminate\Http\RedirectResponse given, called in C:\xampp\htdocs\app\vendor\laravel\framework\src\Illuminate\Foundation\Auth\RegistersUsers.php on line 32 and defined
私はログインを作るが、それはまだ働いていない行を取り出すRegistersUsers.phpでregister(Request $request)
メソッドをオーバーライドしてみました。
アイデア?
EDIT:ログインした後でregister
メソッドをオーバーライドして$this->guard()->logout();
を追加しました。それは動作しますが、これを行う正しい方法ではなく、私は別の解決策を探したいと思います..
不要な回避策のように聞こえます。単純な方法が必要です。 –