У меня есть столбец в моей таблице Blis под названием «крайний срок». Тип — метка времени. Я использую базу данных MySQL.
Когда я сохраняю дату в формате «гг-мм-дд ч: и: с», она сохраняется нормально, но всякий раз, когда я пытаюсь обновить ее до какой-либо другой даты, она просто не сохраняется.
Допустим, у меня есть 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 для поля ввода:
$( "#datepicker" ).datepicker({
dateFormat: "yy-mm-dd 00:00:00"
});
Даже когда я удаляю проверку, значение «крайний срок» все равно не будет обновляться.
Является ли временная метка правильным типом для использования в этой ситуации? Если да, то почему он не обновляется, когда обновляется остальная часть строки? Если нет, то какой правильный тип даты использовать в этом случае?
Да уже знал. Я хотел проверить дату в этом формате, прежде чем она будет сохранена в БД. @CodeBoyCode
Вы абсолютно уверены, что поле в форме называется deadline
Да, включил html в вопрос. @RiggsFolly






Я предполагаю, что вы используете Laravel. В этом случае убедитесь, что deadline находится в массиве fillable.
protected $fillable = [
...
'deadline',
...
]
В противном случае Laravel не сохранит значение.
date_format не изменяет формат данных запроса, он просто проверяет, что это тот же формат - просто проверяет, знали ли вы это или нет