$ fillable和create()不起作用

时间:2016-09-21 10:45:08

标签: laravel laravel-5 eloquent

我刚安装了新的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))"

我做错了什么?

2 个答案:

答案 0 :(得分:1)

在一天结束时,我意识到我为我的模型创建了__constructor,这就是我无法正常创建对象的原因。 我删除了那个构造函数,它运行良好。 :d

答案 1 :(得分:0)

该错误表示您正在尝试插入已存在于表中的setting_name行,并且您对此列有unique约束。

因此,请确保您只插入此行一次,并且没有任何其他行具有相同的setting_name值。