如果用户第一次登录到step2页面,我正在尝试重定向用户,我已经尝试了以下方法
public function postLogin(Request $request){
$credentials = $request->only('login_email', 'login_password');
$credential = ['email'=> $credentials['login_email'], 'password' => $credentials['login_password']];
if (Auth::attempt($credential)) {
// if profile not set, redirect to step 2 page
if(Auth::user()->first_login) {
return $this->getStep2(Auth::user()->id);
}
}
但它向我展示了
{"login":true}
我的getStep2()
就像
public function getStep2($id){
$genres = Track::orderBy('genre', 'asc')->groupBy('genre')->get();
$countries = Country::all();
$categories = Category::where('parent_id', '')->get();
$user_id = $id;
return view('users.step2', compact('genres', 'countries', 'categories', 'user_id'));
}
如果你想重定向,你应该
return redirect('users/step2');
然后,在你的routes.php
有这条路线
Route::get('users/step2', 'UserController@getStep2');
请注意,您不需要实际将用户 id 作为参数传递,因为您可以使用 Auth
外观访问它。
如果您尝试执行的操作实际上是加载视图,那么您的方法应该这样做。我的猜测是,您的一种方法在到达return
语句之前就结束了。
您也可以使用 redirect()->action(...)
方法。
public function postLogin(Request $request) {
$credentials = $request->only('login_email', 'login_password');
$credential = ['email' => $credentials['login_email'], 'password' => $credentials['login_password']];
if (Auth::attempt($credential)) {
// if profile not set, redirect to step 2 page
if (Auth::user()->first_login) {
return redirect()->action('AuthAuthController@getStep2');
}
}
return redirect('/');
}
请注意,您仍然需要为此页面创建路由。
Route::get('step-two', ['uses' => 'AuthAuthController@getStep2']);
要访问当前用户,您可以使用Auth::user()
方法。