Laravel 마이그레이션 : 클래스 "찾을 수 없음"
Laravel 베어 배포 프로젝트를 Microsoft Azure에 배포하고 발생시킬 때 php artisan migrate
마다 발생합니다.
[2015-06-13 14:34:05] production.ERROR : D : \ home \ site \ vendor \ laravel \ framework에 'Class' 'not found'좋아요가있는 'Symfony \ Component \ Debug \ Exception \ FatalErrorException' 예외 \ src \ Illuminate \ Database \ Migrations \ Migrator.php : 328
스택 추적 :
#0 {main}
무엇이 문제일까요? 감사합니다
-편집하다-
고급 클래스
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUsersTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function(Blueprint $table)
{
$table->bigIncrements('id');
$table->string('name', 50);
$table->string('surname', 50);
$table->bigInteger('telephone');
$table->string('email', 50)->unique();
$table->string('username', 50)->unique();
$table->string('password', 50);
$table->boolean('active')->default(FALSE);
$table->string('email_confirmation_code', 6);
$table->enum('notify', ['y', 'n'])->default('y');
$table->rememberToken();
$table->timestamps();
$table->index('username');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('users');
}
}
PSR-4 자동 로더 사용자 (composer.json) :
마이그레이션 폴더를 클래스 맵 배열로 유지하고 자동로드에서 psr-4 개체를 포함하지 않습니다. 마이그레이션 메인 클래스 Migrator는 네임 스페이스를 지원하지 않습니다. 예를 들면 다음과 같습니다.
"autoload": {
"classmap": [
"app/database/migrations"
],
"psr-4": {
"Acme\\controllers\\": "app/controllers"
}
}
그런 다음 다음을 실행하십시오.
php artisan clear-compiled
composer dump-autoload
php artisan optimize
- 먼저 요청한 모든 파일을 지하시기 바랍니다.
- 두 번째는 업데이트
autoload_psr4.php
하고 거의autoload_classmap.php
. - 세 번째는
autoload_classmap.php
.
이때부터는이 작업을 다시 수행 할 필요가 없으며 모든 새 마이그레이션이 올바르게 작동합니다.
마이그레이션을 실행할 때 "클래스를 찾을 수 없음 오류"가 발생하면이 명령을 실행 해보십시오.
composer dump-autoload
그런 다음 migrate 명령을 다시 실행하십시오. 자세한 내용은 공식 사이트 (#Running Migrations) : http://laravel.com/docs/master/migrations#running-migrations
마이그레이션 파일 이름이 클래스 이름과 동일한 지 확인하기 만하면됩니다.
즉 :
파일 이름이 :
xxx_151955_create_post_translations_table.php
그런 다음 클래스는 다음과 같아야합니다.
CreatePostTranslationsTable
나는 이와 같은 문제가 얼마 전에 있었다. Laravel에 대한 문서에서는 http://laravel.com/docs/master/migrations#running-migrations를 제안하기 때문에 분명히 일반적인 문제입니다.
기본적으로해야 할 일은 일부 작곡가 파일을 새로 고치는 것입니다. 간단히 실행 :
composer dump-autoload
이렇게하면 작성기 자동로드 파일이 새로 고쳐지고 정상적인 마이그레이션을 실행할 수 있으며 작동합니다! 최우수.
나는 또한 같은 문제에서 실행됩니다.
나를위한 해결책은 마이그레이션 파일을 삭제하고 데이터베이스의 "migrations"테이블에서 레코드를 삭제하는 것이 었습니다.
그 후 나는 달렸다
작성기 덤프 자동로드
마침내 마이그레이션을 재설정 / 롤백 할 수있었습니다.
마이그레이션 파일 중 하나를 삭제했습니다. 같은 문제에 직면했지만php artisan migrate:rollback
그런 다음 시도했습니다 composer dump-autoload
. 다시 같은 것이 나타났습니다.
삭제 된 파일을 복원 composer dump-autoload
하고 php artisan migrate:rollback
. 효과가있다.
이 질문에 답하기에는 늦었지만 아마도 이것이 누군가를 도울 것입니다.
마이그레이션 파일 이름을 변경 한 경우 내부 클래스 이름을 확인하십시오.
예를 들어 마이그레이션 이름을에서 2018_06_10_079999_create_admins_table.php
로 변경하면 2018_06_10_079999_create_managers_table.php
내부 클래스 이름 도 에서 CreateAdminsTable
로 변경되어야합니다 CreateManagerTable
.
나에게 문제는 CreateModulesProblemsTable의 클래스 이름으로 마이그레이션 이름을 2017_12_15_012645_create_modules_problems.php로 지정했다는 것입니다. 파일 이름에 _table을 추가하자마자 모든 것이 정상적으로 작동했습니다.
Laravel 5.2 개발 프로젝트를 프로덕션으로 옮긴 후에도 비슷한 상황 (클래스를 찾을 수 없음 오류)이 발생했습니다. 프로덕션 서버는 "project"클래스를 찾고 있었지만 컨트롤러 이름은 Project.php였습니다. 파일의 이름을 project.php로 바꾸면 괜찮 았습니다.
내 프로젝트를 마이그레이션하려고 할 때 동일한 클래스를 찾을 수 없음 오류가 발생했습니다. 때때로 그것은 당신을 얻는 간단한 일입니다. 제 경우에는 이름을 일찍 변경하고 변경 사항을 전체에 적용하지 않았기 때문에 마이그레이션 파일에서 클래스 이름이 올바르지 않음을 발견했습니다.
클래스 이름을 수정 한 후 composer dump-autoload를 수행하고 문제가 해결되었습니다.
HTH 누군가 :]
나는 어리석게 말했었다.
namespace database\migrations;
내 마이그레이션 내부 create_users_table.php [2014_10_12_000000_create_users_table.php]
비슷한 오류가 발생했습니다. 'CreateUsersTable'클래스를 찾을 수 없습니다.
맨 위에서이 줄을 제거하면이 오류가 해결되었습니다.
테이블의 데이터베이스에서 행을 삭제migrations
하면 문제가 해결됩니다. 마이그레이션 할 때 더 이상 표시되지 않습니다.
다른 방법은 원하는 파일을 간단하게 만드는 것입니다. 제 경우에는이 마이그레이션을 제거하고 싶었습니다. :)
제 경우에는 데이터베이스의 자동 증가가 있었고 과거에는 수동으로 하나의 항목을 제거 AUTO_INCREMENT
하고 테이블에서 다음 ID보다 하나 더 많은 것을 가리 켰습니다.
분명히 Laravel은 AUTO_INCREMENT
-1을 사용 하여 마지막 마이그레이션이 무엇인지 알고 있습니다.
다음 두 파일에 올바른 클래스 이름과 마이그레이션 이름이 포함되어 있는지 확인하십시오.
C : \ xampp \ htdocs \ StuffSpot \ vendor \ composer \ autoload_classmap.php C : \ xampp \ htdocs \ StuffSpot \ vendor \ composer \ autoload_static.php
참조 URL : https://stackoverflow.com/questions/30819934/laravel-migrations-class-not-found
'ProgramingTip' 카테고리의 다른 글
UITableView의 iOS 문서 디렉토리에 아카이브 파일을 준비 하시겠습니까? (0) | 2020.12.31 |
---|---|
신속하게 요금 버튼에 대한 링크를 추가 비용 부담해야합니까? (0) | 2020.12.31 |
최대 용량 모드에서 ResultSet을 추출 할 수 없습니다. (0) | 2020.12.30 |
CardView 배경색 상태가 존중되지 않음 (0) | 2020.12.30 |
Python 3.3의 해시 함수는 세션간에 다른 결과를 반환합니다. (0) | 2020.12.30 |