我试图在我的项目中播种数据库。当我这样做时,只插入'title'和'post'字段,'Created_at'和'updated_at'不会被更改并显示为0000-00-00 00:00:00。我也尝试过time()。它在“php artisan tink
”中正常工作,但数据库中仍未更改任何结果。
<?php
class QuestionsTableSeeder extends Seeder {
public function run()
{
DB::table('questions')->truncate();
$questions = array(
'title' => 'Simple Question Title',
'post' => 'Lorem ipsum dolor',
'created_at' => time()
);
// Uncomment the below to run the seeder
DB::table('questions')->insert($questions);
}
}
答案 0 :(得分:4)
使用
'created_at' => date('Y-m-d H:i:s', time());
将time()
返回的值格式化为mySql时间戳
答案 1 :(得分:3)
您可以使用new DateTime()
!
希望这个&#39; ll hep
答案 2 :(得分:1)
更新并插入许多用户面临的数据库问题中的新时间戳,他们希望插入日期并更新记录。有很多方法可以做到这一点,但我喜欢数据库本身的方式。正如在MySQL中将表改为
ALTER TABLE `talbename`
ADD `updatedon` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
NOT NULL DEFAULT CURRENT_TIMESTAMP ;
这将在数据库中创建新列,每次更新或插入记录时,都会记录时间戳。不,需要用PHP做事。
答案 3 :(得分:0)
OO方式(使用DateTime)
$now = new DateTime();
$questions = array(
'title' => 'Simple Question Title',
'post' => 'Lorem ipsum dolor',
'created_at' => $now->format('Y-m-d H:i:s'),
);
答案 4 :(得分:0)
Eloquent也会自动处理时间戳。代码如下;
public function run()
{
DB::table('questions')->truncate();
Question::create(array(
'title' => 'Sample Question Title',
'post' => 'Lorem ipsum dollar'
));
}