Метка времени в laravel не будет обновляться

У меня есть столбец в моей таблице 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"
});

Даже когда я удаляю проверку, значение «крайний срок» все равно не будет обновляться.

Является ли временная метка правильным типом для использования в этой ситуации? Если да, то почему он не обновляется, когда обновляется остальная часть строки? Если нет, то какой правильный тип даты использовать в этом случае?

date_format не изменяет формат данных запроса, он просто проверяет, что это тот же формат - просто проверяет, знали ли вы это или нет

CodeBoyCode 08.02.2019 15:33

Да уже знал. Я хотел проверить дату в этом формате, прежде чем она будет сохранена в БД. @CodeBoyCode

Ari 08.02.2019 15:34

Вы абсолютно уверены, что поле в форме называется deadline

RiggsFolly 08.02.2019 15:36

Да, включил html в вопрос. @RiggsFolly

Ari 08.02.2019 15:38
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
4
145
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я предполагаю, что вы используете Laravel. В этом случае убедитесь, что deadline находится в массиве fillable.

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

В противном случае Laravel не сохранит значение.

Другие вопросы по теме