2014-07-23 2 views
2

Я запускаю приложение, которое обрабатывает пользовательские данные, введенные за определенный промежуток времени. Для этого мне нужно изменить временные метки в данных, которые я использую, чтобы засеять базу данных. У меня есть хороший цикл для этого, но проблема в том, что когда я запускаю посев базы данных, ничего не происходит. Мне интересно, есть ли какая-то особенность Laravel, которая предотвращает это, и если да, то как обойти это.Обновление Created_at timestamp Laravel db seeding

  $record->created_at = $fakeCreateDate->format('Y-m-d H:i:s'); 
      $record->save(); 

ответ

1

Да, created_at и updated_at являются «специальными». Laravel устанавливает временную метку для created_at во время создания и update_at во время обновления.

http://laravel.com/docs/eloquent#timestamps

Вы можете отключить их, делая это внутри вашей модели

public $timestamps = false; 

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

Как только модель определена, вы готовы начать извлечение и создания записей в таблице. Обратите внимание, что вам нужно будет поместить updated_at и created_at столбцы по умолчанию. Если вы делаете , не хотите, чтобы эти столбцы автоматически поддерживались, установите для свойства $ timestamps на вашей модели значение false.

+0

Brilliant! Я просто добавил, что одна строка кода для моей модели, и все же оставила '$ table-> timestamps();' в моем компоновщике миграции и работала так, как должна. – user3413723

1

Метод Carbon::now() может вам помочь.

В вашем примере, он должен работать с

$record->created_at = \Carbon\Carbon::now() 
$record->save() 

Если вам нужно сделать вставку с DB::table, например, для обновления даты, вы должны использовать правильный метод для создания даты.

Допустим, у вас есть таблица things только с id и timestamps, как эта схема

$table->increments('id'); 
$table->timestamps(); 

Одним из примеров обновления дата:

DB::table('things')->insert(['created_at' => \Carbon\Carbon::now()]); 
Смежные вопросы