2016-09-21 22 views
2

私は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();を追加しました。それは動作しますが、これを行う正しい方法ではなく、私は別の解決策を探したいと思います..

答えて

0

もっと柔軟に独自のレジスタコントローラを作成したいと思います。そして作成して作成し、作成して、あなたが望む場所にリダイレクトするメソッドを作成します。アプリで

+0

不要な回避策のように聞こえます。単純な方法が必要です。 –

0

時間がかかりすぎると思いません/ HTTP /コントローラ/認証/ RegisterControllerは、メソッドの後にこれを追加するには、作成します。

が入力するコードここ

public function redirectPatch() 
{ 
    return "verifyemail"; 
} 

Exemple

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'] 
    ]); 

} 
public function redirectPatch() 
{ 
    return "/verifyemail"; 
} 
0

数週間私はこれのための解決策を見つけることを試みている。 だけで作成する関数の内部で、次を追加し、登録した後、デフォルトのURLを上書きする:ちょうどこの

protected function create(array $data) { 
    $this->redirectTo = '/url-after-register'; 

    return User::create([...]); 
} 
0

よう

$this->redirectTo = '/url-after-register'; 

ありがとう!私はあなたのソリューションを実装しました。または、クラスの登録メソッドをオーバーライドして、特定のルートにリダイレクトすることもできます。

protected function registered(Request $request, $user) 
{ 
    $this->guard()->logout(); 
    return Redirect::route('your.route'); 
} 
関連する問題