【发布时间】:2019-02-08 14:31:44
【问题描述】:
我的表 Blis 中有一个名为“deadline”的列。类型是时间戳。我正在使用 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"
});
即使我删除了验证,“deadline”的值仍然不会更新。
时间戳在这种情况下使用正确的类型吗?如果是这样,为什么当行的其余部分更新时它不会更新?如果不是,在这种情况下使用哪种正确的日期类型?
【问题讨论】:
-
date_format 不会修改请求数据的格式,它只是检查它是否是相同的格式 - 只是检查您是否知道这一点
-
是的,已经知道了。我想在保存到数据库之前以这种格式验证日期。 @CodeBoyCode
-
您绝对确定表单上的字段名为
deadline -
是的,在问题中包含了 html。 @RiggsFolly
标签: php mysql laravel date timestamp