来自控制器的 Laravel 调用路由

Posted

技术标签:

【中文标题】来自控制器的 Laravel 调用路由【英文标题】:Laravel call route from controller 【发布时间】:2016-06-15 03:16:58 【问题描述】:

成功登录后我正在调用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');

我的 dashobard 路线是:

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

【问题讨论】:

【参考方案1】:

我的理解是你要找的是这个功能

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

我对您的问题的理解可能是错误的。也许你在问别的。

【讨论】:

【参考方案2】:

那个叫做 Redirection 并且特别是你想要 Returning A Redirect To A Named Route,你的路由叫做 user.dashboard 所以你可以使用 redirect()->route(route_name) 重定向到它: p>

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

希望这会有所帮助。

【讨论】:

以上是关于来自控制器的 Laravel 调用路由的主要内容,如果未能解决你的问题,请参考以下文章

如何在 laravel 中使用 get 在单页路由中使用来自同一控制器的两个功能

有 Laravel 8 路由和控制器问题

Laravel 5 路由直接调用控制器

laravel 从控制器调用路由

Laravel:在路由与控制器上调用视图

相同的路由但在 Laravel 5.1 路由中调用不同的控制器