2015-12-25 18 views
15

我有这样的迁移:雄辩模型返回0作为主键

Schema::create('provincias', function (Blueprint $table) { 
    $table->string('codigo', 2); 
    $table->string('nombre', 50); 
    $table->timestamp('creado'); 
    $table->primary('codigo'); 
}); 

这是我的模型:

class Provincia extends Model 
{ 
    protected $primaryKey = 'codigo'; 
    public $timestamps = false; 
} 

我运行的迁移和保存这样的数据:

$provincia = new Provincia; 
$provincia->codigo = "BA"; 
$provincia->nombre = "Buenos Aires"; 
$provincia->save(); 

问题是,当我得到所有和转储:

$provincias = Provincia::all(); 
return $provincias; 

主键“codigo”始终为0,甚至当我检查数据库表中,并有适当的值:

{ 
    codigo: 0, 
    nombre: "Buenos Aires", 
    creado: "2015-12-24 21:00:24" 
} 
+2

试着在模型'public $ incrementing = false;设置递增为false;'看看能否工作 – nrivero

回答

46

您可以尝试在你的模型,因此口才并不指望您的主设定public $incrementing = false;关键是成为一个自动增量主键。

+0

它的工作,谢谢! – Alan

+1

谢谢一堆。令人惊讶的是,在Laravel 5.1中,我不需要这个属性,但在5.4中需要它。 –

+0

我刚刚从5.1迁移到Laravel 5.4。非常感谢你提供这个宝贵的建议。 – DavidHyogo