오류: Laravel 8의 "대상 클래스 컨트롤러가 존재하지 않습니다"
Laravel 8을 사용할 때 "대상 클래스 컨트롤러가 존재하지 않습니다"라는 오류가 발생할 수 있습니다. 클래스가 올바른 위치에 있음에도 불구하고 클래스 [ApiRegisterController]가 존재하지 않습니다." 이 오류는 Laravel 8의 네임스페이스 처리 변경으로 인해 발생합니다.
이전에는 컨트롤러 앞에 RouteServiceProvider에 정의된 네임스페이스가 자동으로 추가되었습니다. 그러나 Laravel 8에서는 이 접두사가 더 이상 기본적으로 적용되지 않습니다. 따라서 경로에서 컨트롤러를 참조할 때 컨트롤러의 정규화된 클래스 이름을 명시적으로 정의해야 합니다.
해결책 1: 정규화된 클래스 이름
이 문제를 해결하려면 문제가 발생하면 경로의 컨트롤러 참조를 정규화된 클래스로 바꾸세요. 이름:
Route::get('register', 'App\Http\Controllers\Api\RegisterController@register');
솔루션 2: 네임스페이스 접두사
또는 RouteServiceProvider를 수정하여 네임스페이스 접두사를 다시 활성화할 수 있습니다:
protected $namespace = 'App\Http\Controllers';
경로에서 참조되는 모든 컨트롤러 앞에 AppHttpController가 붙습니다. 네임스페이스.
해결책 3: 네임스페이스 그룹 사용
api.php 경로 파일 내에서 네임스페이스 그룹을 정의하여 특정 경로에 네임스페이스를 적용할 수 있습니다.
Route::group(['namespace' => 'Api'], function () { Route::get('register', 'RegisterController@register'); });
추가 참고
위 내용은 Laravel 8에서 '대상 클래스 컨트롤러가 존재하지 않습니다' 오류가 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!