0

我想将登录的用户重定向到'/'路由(比如example.com,后面没有任何东西)

这有效:

Route::get('/', Home::class)->name('home');

class Home extends Controller
{
    public function __invoke()
    {
        if(Auth::check()) {
            return view('dashboard');
        }
        else {
            return view('welcome');
        }
    }
}

但是现在我需要向这个路由/控制器添加中间件。

文档建议$this->middleware(['auth', 'verified'])在我的 Home 控制器中添加 __constructor。

这不起作用,因为它还会影响客人的视图 ( return view('welcome');)

我也试过:

Route::get('/', [Home::class, 'index'])->name('home');

class Home extends Controller
{
    public function __construct()
    {
        $this->middleware(['auth', 'verified'])->only('dashboard');
    }
    
    public function index()
    {
        if(Auth::check()) {
            $this->dashboard();
        }
        else {
            $this->welcome();
        }
    }
    
    public function welcome()
    {
        return view('welcome');
    }
    
    public function dashboard()
    {
        return view('dashboard');
    }
}

但这也不起作用。有任何想法吗?

4

0 回答 0