Обновление с использованием Laravel: created_at обновляется при обновлении записи

Функциональность обновления работает нормально с приведенными ниже кодами. Где я обновляю поле status как 0. Значение по умолчанию для этого поля — 1. Он работает нормально, но поле created_at также обновляется всякий раз, когда используется эта функция. Обновляется поле updated_at, а не created_at.

В моей таблице notification_records есть поля created_at и updated_at.

Если тип данных created_at равен timestamp(), это поле используется, если есть новые созданные записи уведомлений, а поле updated_at предназначено только для модификации.

public function notification(Request $request){
$company_id = auth()->user()->company_id;
DB::connection('mysql')->select("UPDATE notification_records SET status = '0' WHERE company_id = '".$company_id."' AND id = '".$request->ind."'");
}

Что я пытаюсь сделать, так это то, что всякий раз, когда функция используется, единственным полем, которое будет обновлять значение поля между created_at и updated_at, является только updated_at. Есть ли способ сделать это с помощью приведенных выше кодов?

не рекомендуется писать необработанный sql-запрос, когда для него доступны другие параметры либо с помощью метода построения запросов, либо с помощью красноречивого метода, а также вы в своей структуре таблицы, если вы не установили атрибуты created_at как при обновлении currenttimestamp, тогда он также не будет обновлять его вы можете передать дату в своем поле updated_at, когда вы нажимаете свою функцию

Gaurav Gupta 28.05.2019 08:02

Я удалил «при обновлении CURRENT_TIMESTAMP», и теперь все работает нормально. Также я добавил значение по умолчанию для этих временных меток. На самом деле я использую другое объединение таблиц, поэтому я предпочел использовать классический SQL-запрос, чем использовать красноречивый метод или метод построителя.

King RG 28.05.2019 09:25

вы также можете использовать метод построителя запросов для этого (другое соединение таблицы), но это нормально, я просто говорю, что это не очень хорошая практика. Это не значит, что ты должен это делать или нет.

Gaurav Gupta 28.05.2019 09:31

Спасибо за совет, Заметил. Я изучу эти методы, как только получу новый проект. Так как я уже начал проект с таким кодированием.

King RG 28.05.2019 09:51
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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 и хотите разрабатывать...
2
4
1 277
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Это проблема в laravel 5.2 Вы можете смягчить это, удалив и прочитав метки времени следующим образом: Вместо $table->timestamps();

$table->timestamp('created_at')->default('0000-00-00 00:00');
$table->timestamp('updated_at')->default('0000-00-00 00:00');

Смотрите здесь для вопроса: Изменения Laravel created_at при обновлении

Решение взято отсюда

https://github.com/spatie/laravel-medialibrary/issues/150

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