Php Laravel为身份验证和来宾用户路由不同的控制器

Php Laravel为身份验证和来宾用户路由不同的控制器,php,laravel,controller,routes,laravel-7,Php,Laravel,Controller,Routes,Laravel 7,我正在尝试使用相同的路由主页/,但auth和guest用户的控制器不同,但我无法做到这一点。我在谷歌、stackoverflow等网站上搜索并尝试了所有结果,但都没有成功。我猜这是因为我使用的版本是LaravelFramework7.15 $uses = 'BlogController@index'; if (!is_null(auth()->user())) { $uses = 'HomeController@index'; } Route::get('/', $us

我正在尝试使用相同的路由主页
/
,但auth和guest用户的控制器不同,但我无法做到这一点。我在谷歌、stackoverflow等网站上搜索并尝试了所有结果,但都没有成功。我猜这是因为我使用的版本是LaravelFramework7.15

 $uses = 'BlogController@index';
 if (!is_null(auth()->user())) {
     $uses = 'HomeController@index';

 }
 Route::get('/', $uses);
BlogController用于来宾,HomeController用于经过身份验证的用户。因此,当我为经过身份验证的用户运行代码时,它只显示博客(来宾)主页,而不显示用户HomeController页面。 提前感谢您的帮助。

您可以试试这个

Route::get(“/”,(函数(){
返回auth()->user()
?app()->make(\app\Http\Controllers\HomeController::class)->index()
:app()->make(\app\Http\Controllers\BlogController::class)->index();
}));

谢谢,但没用。错误消息是=
Action-App\Http\Controllers\HomeController@index未定义。
HomeController中是否有索引方法?是的,我有。它与一个直接的
Route::get('/','HomeController@index');sr,刚刚更新了我的答案。重定向路由操作仅在您已执行该操作时有效。所以现在我们应该创建controller类并调用index函数,但我认为还有另一种流畅的方法可以做到这一点。将在我发现时更新更好的答案,但我建议您尝试此解决方案,控制器中的handle view更好: