我的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"
});
即使删除验证,“最后期限”的值仍不会更新。
在这种情况下,时间戳是正确的类型吗?如果是这样,为什么其余的行都不会更新呢?如果不是,在这种情况下使用的是正确的日期类型?
答案 0 :(得分:6)
我想您正在使用Laravel。在这种情况下,请确保deadline
在fillable
数组内。
protected $fillable = [
...
'deadline',
...
]
否则Laravel将不会存储该值。