填写表格后,我希望用户首先被重定向到内容成功注册的页面。现在的问题是它会自动重定向到用户mypage
。
用户模型
public function register($data){
try {
$this->name = $data['name'];
$this->email = $data['email'];
$this->password = $data['password'];
$this->save();
return $this;
} catch (\Exception $e) {
\Log::error(get_class().':register(): '.$e->getMessage());
return false;
}
}
Auth \ RegisterController
public function registComplete(User $user){
$data = Session::get('user');
$data['password'] = Hash::make($data['password']);
$rtn = $user->register($data);
Auth::guard('user')->login($rtn);
return redirect('/regist/complete');
}
在我的/regist/complete
路线中,它指向将显示感谢页面的函数。从那里,用户可以单击要重定向到用户mypage
的按钮,这将是他们唯一可以重定向的时间。
查看
<div class="regist_cont">
<div class="rgstdn_message">
<p class="redbig_message">Thanks for registering.</p>
<p>You can now visit your profile</p>
</div>
<a class="btn btn_red" href="{{ url('/mypage') }}">MY PAGE</a>
</div>
如果我删除Auth::guard('user')->login($rtn);
,则该用户不会自动登录。但是,当单击“我的页面”按钮时,我无法使他们登录。我该如何实现?
答案 0 :(得分:1)
您可以在控制器上添加以下行
protected $redirectTo = '/regist/complete';
这将覆盖默认重定向到您的页面
答案 1 :(得分:0)
探索之后,我可以使用Session
来做到这一点。
Auth \ RegisterController
public function registComplete(User $user){
$data = Session::get('user');
$data['password'] = Hash::make($data['password']);
$rtn = $user->register($data);
Session::put('log', $rtn);
Session::save();
return redirect('/regist/complete');
}
public function registSuccess(){
Auth::guard('user')->login(Session::get('log'));
return view('user.register.registComplete');
}
由于我也在使用社交媒体登录,因此在重定向到Mypage时,我会在UserController
中进行此操作。
public function index()
{
if(Session::exists('log')){
Session::forget('log');
}
return view('user.dashboard')->with([
'user' => Auth::user(),
]);
}
就此而言,我能够实现自己想要实现的目标。如果您还有其他更好的方法,我也愿意接受。