當我使用 Postman 訪問我的注冊路線時,它給了我以下錯誤:
My api.php route:
Route::get('register', 'Api\RegisterController@register');
這是我的控制器:
uj5u.com熱心網友回復:
在官方的 Laravel 8 升級指南中,你可以看到控制器默認不再有命名空間。這阻礙了使用'Controller@method'語法的自動類決議。
請參閱https://laravel.com/docs/8.x/upgrade#automatic-controller-namespace-prefixing
注冊路由的新方法是使用以下語法:
// routes/api.php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\RegisterController;
Route::get('register', [RegisterController::class, 'register');
您還可以調整RouteServiceProvider.php檔案以“重新啟用”使用正確命名空間和@語法自動加載控制器的舊方法:
// App/Providers/RouteServiceProvider.php
public function boot()
{
// ...
Route::prefix('api')
->middleware('api')
->namespace('App\Http\Controllers') // put your namespace here
->group(base_path('routes/api.php'));
// ...
}
uj5u.com熱心網友回復:
應改為:
Route::get('register', [RegisterController::class, 'register']);
uj5u.com熱心網友回復:
首先,在路由中添加控制器名稱。
use App\Http\Controllers\RegisterController;
在路線中這樣使用
Route::get('register', [RegisterController::class, 'register']);
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/439800.html
