web-dev-qa-db-ja.com

Laravelコントローラーからの通話ルート

ログインに成功した後、getting_startedルートを呼び出しています:

protected $redirectTo = '/getting_started';

これが私のgetting_startedルートコードです:

Route::get('/getting_started','UserController@getting_started');

そしてコントローラーコード:

public function getting_started()
{
    $id= Auth::id();
    $user = DB::table('user_profiles')->where('user_id', '=', $id)->first();

    if($user->dashboard_access == 0)
    {
        DB::table('user_profiles')
            ->where('user_id', $id)
            ->update(['dashboard_access' => 1]);
        return view('user.getting_started');
    }

    return view('user.dashboard');
}

それは完全に機能し、URLで表示されます:

http:// localhost:8080/getting_started

今私は実際にそれが欲しいのならuser.dashboardビューは次のようなURLで表示されます:

http:// localhost:8080/Dashboard `

そしてgetting_startedビューショー:

http:// localhost:8080/getting_started

代わりにダッシュボードルートを呼び出すことができます:

  return view('user.dashboard');

私のダッシュバードルートは:

Route::get('/dashboard',['middleware' => 'auth', function () {
    return view('user.dashboard');
}]);
7
Umair Zahid

私が理解しているのは、あなたが探しているのはこの機能です

return redirect()->route('dashboard');

間違っている可能性があるのはあなたの質問に対する私の理解です。多分あなたは何か他のものを求めています。

10
Yasir Ijaz

それはリダイレクトと呼ばれ、特にあなたはリダイレクトを返す名前付きルート、_user.dashboard_という名前のルートを使用して、redirect()->route(route_name)を使用してリダイレクトできるようにします。

_return redirect()->route('user.dashboard');
_

お役に立てれば。

1
Zakaria Acharki