我刚安装了新的laravel项目。之后,我创建了新模型,但是当我使用create()函数时,它只显示我的新行已被复制。
这是我的代码:
protected $fillable = ['id', 'setting_name', 'expected_type', 'default_val', 'modified_val'];
// protected $guarded = ['created_at', 'updated_at'];
function test() {
$input = ['setting_name' => 'Test',
'expected_type' => '123',
'default_val'=>'123',
'modified_val'=>'123'];
// dd($input);
//both next two lines do not working
Setting::create($input);
return Setting::firstOrNew($input);
}
我检查了错误:
"Integrity constraint violation: 1062 Duplicate entry '' for key 'setting_name' (SQL: insert into settings (updated_at, created_at) values (1474452834, 1474452834))"
我做错了什么?
答案 0 :(得分:1)
在一天结束时,我意识到我为我的模型创建了__constructor,这就是我无法正常创建对象的原因。 我删除了那个构造函数,它运行良好。 :d
答案 1 :(得分:0)
该错误表示您正在尝试插入已存在于表中的setting_name
行,并且您对此列有unique
约束。
因此,请确保您只插入此行一次,并且没有任何其他行具有相同的setting_name
值。