laravel中的时间戳不会更新

时间:2019-02-08 14:31:45

标签: php mysql laravel date timestamp

我的Blis表中有一列称为“最后期限”。类型是时间戳。我正在使用MySQL数据库。

当我以“ yy-mm-dd h:i:s”格式保存日期时,它可以很好地保存,但是只要我尝试将其更新为其他日期,它就不会保存。

假设我在一排中有2019-02-17 00:00:00并想更新到2019-05-05 09:30:00,即使该行的其余部分都没有更改得到更新。

迁移:

public function up()
{
    Schema::table('blis', function (Blueprint $table) {
        $table->timestamp('deadline')->default(null)->nullable();
    });
}

控制器:

public function update(Bli $bli)
    {

        $attributes = request()->validate(
            [
            'title' => ['required', 'min:3'],
            'description' => ['nullable'],
            'status_id' => ['required'],
            'deadline' => ['date_format:Y-m-d H:i:s']
            ]
        );

        $bli->update(request(['title', 'description', 'status_id', 'deadline']));



        return redirect("/bli/$bli->id");
    }

HTML:

<div class="form-group ">
      <label for="deadline">Deadline:</label>
      <input class="form-control" type="text" id="datepicker" name="deadline" placeholder="Date" value="{{$bli->deadline}}">
</div>

我正在使用jquery UI的datepicker作为输入字段:

$( "#datepicker" ).datepicker({
    dateFormat: "yy-mm-dd 00:00:00"
});

即使删除验证,“最后期限”的值仍不会更新。

在这种情况下,时间戳是正确的类型吗?如果是这样,为什么其余的行都不会更新呢?如果不是,在这种情况下使用的是正确的日期类型?

1 个答案:

答案 0 :(得分:6)

我想您正在使用Laravel。在这种情况下,请确保deadlinefillable数组内。

protected $fillable = [
    ...
    'deadline',
    ...
]

否则Laravel将不会存储该值。