Laravels的Eloquent“create”方法试图保存空属性

时间:2013-11-26 02:02:08

标签: laravel laravel-4 eloquent

class Setting extends Eloquent {
    public $primaryKey = 'key';
    public $timestamps = false;
    public $fillable = array('*');
}

我的表格settings包含两列:keyvalue

当我尝试执行时:

Setting::create(array(
    'key' => 'test',
    'value'=> 'test1'
));

我明白了:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '' for key 'PRIMARY' (SQL: insert into设置() values ()) (Bindings: array ( ))

这非常奇怪。有任何想法吗?我在2个表上试过这个,它有同样的问题。我的Laravel版本是最新的。

1 个答案:

答案 0 :(得分:0)

您能否向您展示数据库表定义。你确定'key'真的被设置为你桌子上的PRIMARY键吗?我想到的第一件事是你可能在'settings'表中设置了不同的字段作为PRIMARY('id'或者其他东西)而你没有为该字段设置'auto_increment'标志。