2017-02-09 2 views
0

Я использую Laravel 5.2 (на PHP версии 7) и ниже является запрос на обновление Я бегу:Laravel 5.2 - Как обновить поле «updated_at» с меткой времени UTC?

$data=DB::table('posts') 
         ->where("id", $post_id) 
         ->update(
          array(
           'title'   =>  $request['title'], 
           'body'   =>  $request['body'], 
           'slug'   =>  str_slug($request['title']), 
           'updated_at' =>  DB::raw('CURRENT_TIMESTAMP') 
      )); 

«updated_at» поле обновляется с текущим временем. Но я хочу обновить его с отметкой времени UTC. Как я могу это достичь?

+1

Вам не нужно вручную устанавливать значение 'updated_at'; Eloquent устанавливает его для вас с текущей меткой времени UTC при вызове 'update()'. –

+0

@MartinBean Я проверил запись из mysql, и я увидел, что «updated_at» не изменился, если я использовал update(). –

+0

Извините, просто понял, что вы используете фасад 'DB', а не модель Eloquent. Я бы создал модель «Post» для ваших сообщений (если вы еще этого не сделали) - это сделает вашу жизнь намного проще, чем напрямую работать с схемами базы данных. –

ответ

0

Если вы используете метод model->save(), он должен обрабатывать созданные и обновленные даты для вас. В общем, вам не нужно делать необработанные обновления базы данных в Laravel.

Если у вас есть другой часовой пояс для этого, посмотрите на настройку часового пояса в app.php. По умолчанию используется «UTC», поэтому вам не придется беспокоиться.

+0

Я использовал функцию save() вместо update(). –

Смежные вопросы