如何在 Laravel 路由中不使用完整的控制器路径

How to NOT use full controller path in Laravel routes

在 Laravel 网络路由中,我使用控制器的完整路径,如下所示:

'App\Http\Controllers\frontend\EmailController@index'

这有点冗长和多余。我怎样才能使用这样的路径:

'EmailController@index'

这不再是 Laravel 中声明路由的方式。你应该在现代版本中做这样的事情:

<?php

use App\Http\Controllers\frontend\EmailController;

Route::get("/email", [EmailController::class, "index"]);

IIRC,对于旧版本,始终假定 App\Http\Controllers(或在路由服务提供商中设置为 属性),您可以只使用 "frontend\EmailController@index",或将其包装在删除“前端”前缀的路由组:

<?php

Route::namespace("frontend")->group(function () {
    Route::get("/email", "EmailController@index");
});