이행이 라라벨로 동작하도록 하려면 "composer dump-autoload" 명령을 실행해야 하는 이유는 무엇입니까?
필요한 테이블을 만들기 위해 응용 프로그램에 마이그레이션 클래스를 몇 개 구축했지만 오류가 계속 발생합니다.다음 명령을 실행해야 합니다.
composer dump-autoload
그제서야 예상대로 다시 작동합니다.이 에러를 발생시키는 잘못된 조작을 하고 있습니까?아니면 이행에 관한 정상적인 동작입니까?
이행 프로세스 실행 시 발생하는 오류는 다음과 같습니다.
[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'CreateVideoStatusTable' not found
그래, 그럼 무슨 문제인지 알겠네요
기본적으로 Composer는 작성 중인 마이그레이션 파일을 볼 수 없으므로 dump-autoload 명령을 실행해야 합니다. dump-autoload 명령어는 새로 다운로드되지 않지만 다시 포함해야 하는 모든 클래스를 찾습니다.프로젝트에 포함할 필요가 있는 모든 클래스의 리스트(autoload_classmap.php)만 재생성됩니다.이 때문에 이 명령어를 실행한 후에 이행이 동작합니다.
수정 방법 (가능성이 있음) composer.json 파일에 정보를 추가해야 합니다.
"autoload": {
"classmap": [
"PATH TO YOUR MIGRATIONS FOLDER"
],
}
마이그레이션 폴더의 경로를 클래스 맵 배열에 추가해야 합니다.그런 다음 다음 세 가지 명령을 실행합니다.
php artisan clear-compiled
composer dump-autoload
php artisan optimize
이렇게 하면 현재 컴파일된 파일이 지워지고 필요한 클래스가 갱신된 후 다시 쓸 필요가 없어집니다.
실행이 이상적입니다.composer dump-autoload -o
웹 페이지를 빠르게 로드하려면 , 를 참조하십시오.디폴트값이 아닌 유일한 이유는 생성에 다소 시간이 걸리기 때문입니다(단, 약간만 알 수 있습니다).
매우 귀찮은 일이니, 어떻게든 해결해 주셨으면 합니다.
다음 작업을 수행합니다.
composer dump-autoload
동작하지 않는 경우는, 컴포저를 재인스톨 할 필요가 있습니다.
간단한 답변: 클래스 맵은 정적이며 PSR 자동 로딩은 동적입니다.
클래스 맵을 사용하지 않으려면 대신 PSR 자동 로딩을 사용하십시오.
저의 오류는 config/fortify.php 안에 함수를 배치한 것입니다.이 경우, 이 오류를 발생시킨 것은 익명 함수입니다.
이를 위한 최종적인 해결책은 구성/폴더에서 보통 수정하는 파일을 확인하는 것입니다.
많은 곳에서 부트스트랩/캐시/*에서 파일을 삭제하라고 하지만, 제 경우에는 제대로 작동하지 않았고 말이 되지 않았습니다.어떤 경우에도 명령어를 남깁니다.
php artisan clear-compiled
composer dump-autoload
php artisan optimize
단, 설정한 기본 라라벨 설정 파일을 검토하는 것이 좋습니다.여기서 오류를 찾을 수 있습니다.
언급URL : https://stackoverflow.com/questions/33973967/why-do-i-have-to-run-composer-dump-autoload-command-to-make-migrations-work-in
'programing' 카테고리의 다른 글
python에서 문자열을 구분 기호로 분할합니다. (0) | 2022.09.27 |
---|---|
MySQL/Mariadb 문제: "Group by" 앞에 "Order by DESC"가 표시됨 (0) | 2022.09.27 |
Vuex 상태에서 반응형 어레이를 동적으로 생성 (0) | 2022.09.27 |
TypeError: router.use()에 미들웨어 기능이 필요하지만 오브젝트를 취득했습니다. (0) | 2022.09.27 |
MySQL: 열이 null인 행 선택 (0) | 2022.09.27 |