소스 네트워크
1.Laravel 5.4: 지정된 키가 너무 깁니다. 오류이유: LV 5.4부터 데이터베이스의 기본 문자 집합은 utf8mb4입니다 (쌍 이모티콘 지원 포함). MySQL v5.7.7 이상을 사용하는 경우 수정이 필요하지 않습니다. MariaDB를 포함하여 이전 버전의 MySQL 데이터베이스를 사용하는 아동용 신발은 다음과 같이 수정하고 /project/app/Providers/AppServiceProvider.php
use Illuminate\Support\Facades\Schema; // 注意要引入命名空间 public function boot() { Schema::defaultStringLength(191); // 针对 早期 mysql 数据迁移 }파일을 수정한 다음 마이그레이션 명령을 재사용할 수 있습니다:
2.SQLSTATE [42S01]: 기본 테이블 또는 뷰가 이미 존재합니다: 1050php artisan migrate
데이터 마이그레이션 시 테이블이 이미 존재합니다.해결책:
기존 테이블을 삭제한 후 다시 마이그레이션하세요.3.PDOException::("SQLSTATE[42000]: 구문 오류 또는 액세스 위반: 1067 'published_at'에 대한 잘못된 기본값")
수정 방법 1: vim config/database.php 'mysql' => [
'driver' => 'mysql',.... ...
'prefix' => '',
'strict' => true, // 修改这里
'engine' => null,
],
수정됨:
'mysql' => [ 'driver' => 'mysql',.... ... 'prefix' => '', 'strict' => false, // 修改这里 'engine' => null, ],
$table->nullableTimestamps()
기본 타임스탬프 설정$table->timestamps('created_at');// 会生成created_at\updated_at字段
4.PDOException::("SQLSTATE[42S22]: 열을 찾을 수 없음: 1054 알 수 없는 열 ' '필드 목록'의 'created_at'")
이 문제는 테이블 마이그레이션 중에 기본 타임스탬프 필드가 설정되지 않았지만 수정 가능한 시드 데이터를 생성하는 데 팩토리 메소드가 사용되었기 때문에 발생합니다public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->increments('id');
$table->string('slug')->unique();
$table->string('title');
$table->text('content');
$table->timestamps(); // 添加这行
}); }
Repeat make:migration
정확하게 말하면 작업 자체는 한 번만 수행하면 되기 때문에 이는 함정이 아닙니다.그러나 초보자의 경우 의도하지 않게 여러 번 반복될 수 있으며 다음을 수행합니다. 마이그레이션은 오류가 보고되지 않습니다.
마이그레이션을 수행할 때 문제가 발생합니다.
해결 방법은 동일한 테이블의 스키마 이름을 삭제하거나 수정하는 것입니다.
5.php artisan db:seed 테이블 이름이 복수형 단수형으로 변경됨
이것은 Chinglish와 관련이 있을 수 있습니다. 외국인들은 테이블 이름을 복수형으로 쓰는 데 익숙하므로 단순히 for라는 영어 단어를 기본값으로 사용합니다. 의 복수형에 해당하는 테이블 이름입니다. 따라서 다음과 같이 모델의 $table 속성을 다시 작성해야 합니다. protected $table='student';
인터넷에서 찾아 저장합니다. 자신의 편의를 위해, 다른 사람의 편의를 위해
위 내용은 [라라벨 피트 회피 주의사항] 라라벨 오류 보고 문제 42S01 420004 42S22] 기타...의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!