2015-05-19 40 views
6

Ben böyle kod görünüyor varsayılan tamsayı değeri olarak sahip bir tablo oluşturmak için çalışıyordu: Ben göçü çalıştırdığınızdalaravel 5 Göç, Geçersiz varsayılan değer zaman tamsayı

Schema::create('gsd_proyecto', function($table) { 
     $table->increments('id'); 
     $table->string('nombre', 80)->unique(); 
     $table->string('descripcion', 250)->nullable(); 
     $table->date('fechaInicio')->nullable(); 
     $table->date('fechaFin')->nullable(); 
     $table->integer('estado', 1)->default(0); 
     $table->string('ultimoModifico', 35)->nullable(); 
     $table->timestamps(); 
    }); 

Ama ben m sonraki hata alıyorum:

Next exception 'Illuminate\Database\QueryException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for 'estado' 

Ben laravel yarattığı SQL ve ben önümüzdeki

create table `gsd_proyecto` (
`id` int unsigned not null auto_increment primary key, 
`nombre` varchar(80) not null, 
`descripcion` varchar(250) null, 
`fechaInicio` date null, 
`fechaFin` date null, 
`estado` int not null default '0' auto_increment primary key, 
`ultimoModifico` varchar(35) null, 
`created_at` timestamp default 0 not null, 
`updated_at` timestamp default 0 not null 
) 
ne buldum kontrol ediyordu

Eğer laravel ve aynı zamanda bir autoincrement birincil anahtar

Herhangi bir yardım gerçekten takdir edilecektir

cevap

12

olarak ('0') bir karakter değeri ile alan Estado ayarlamak çalışıyor görebileceğiniz gibi İkinci parametreyi integer yönteminde kaldırın. Sütunu otomatik artış olarak ayarlar. Daha fazla inceleme için Laravel API'sini kontrol edin.

http://laravel.com/api/5.0/Illuminate/Database/Schema/Blueprint.html#method_integer

$table->integer('estado')->default(0); 
+2

İşe yaradı! Çok teşekkürler! MySql gibi bir tanımda düşünüyordum .... yerine şimdi tinyInteger kullanıyorum ve şimdi çalışıyor. Çok teşekkürler! – WindSaber