关于php:Laravel为身份验证和来宾用户使用相同的路由不同的控制器

Laravel same route different controllers for auth and guest users

我正在尝试具有相同的路由主页/,但用于身份验证和来宾用户的控制器不同,但我无法执行此操作。我已经搜索并尝试了所有关于google,stackoverflow等的结果,但都没有奏效。我猜是因为我使用的是Laravel Framework 7.15

版本

1
2
3
4
5
6
 $uses = 'BlogController@index';
 if (!is_null(auth()->user())) {
     $uses = 'HomeController@index';

 }
 Route::get('/', $uses);

BlogController适用于来宾,而HomeController适用于经过身份验证的用户。因此,当我为经过身份验证的用户运行代码时,它仅显示Blog(guest)主页,而不显示用户HomeController页面。
感谢您的提前帮助。


您可以尝试这个。

1
2
3
4
5
Route::get('/', (function() {
    return auth()->user()
        ? app()->make(\\App\\Http\\Controllers\\HomeController::class)->index()
        : app()->make(\\App\\Http\\Controllers\\BlogController::class)->index();
}));