首页 > 解决方案 > 如何不在 Laravel 路由中使用完整的控制器路径

问题描述

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

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

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

'EmailController@index'

标签: phplaravellaravel-routing

解决方案


这不再是在 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");
});

推荐阅读