在一个插入上添加两个created_at

时间:2019-07-01 05:03:55

标签: laravel laravel-5 eloquent laravel-4

我想在数据库列上添加另一个created_at列以供参考。

我想同时拥有一个created_at和created_at1。

这是我的模型中的内容:

const CREATED_AT = 'created_at1';

protected $dates = [created_at, created_at1];

但是我收到此错误:字段'created_at'没有默认值。

2 个答案:

答案 0 :(得分:1)

由于Laravel已经为您完成了此操作,因此您无需将铸造添加到created_at。

您需要在字符串之内添加

protected $dates = ['created_at1']

如果要在创建新模型时设置created_at1,则可以添加Model Events

在模型内部,

protected static function boot(){
    parent::boot();

    static::creating(function($model){
        $model->created_at1 = Carbon::now();
    });
}

内部控制器

$model = Model::create([
    ...
    ]);

现在它将设置created_at和created_at1

对于插入,您必须手动将值保存到created_at1,因为它不会反映模型事件。

Model::insert([
    ...
    'created_at1' => Carbon::now()
]);

答案 1 :(得分:0)

在插入数据时,您可能没有将值传递给created_at列。请检查。如果不是这种情况,请提供有关您的问题的更多信息。