el *_*uta 7 laravel laravel-5 laravel-5.2
我有一个问题updated_at,created_at在Laravel 5中的字段.
这是我的迁移:
Schema::create('lots', function (Blueprint $table) {
$table->increments('id');
$table->integer('lot');
$table->integer('is_active');
$table->timestamps();
});
Run Code Online (Sandbox Code Playgroud)
但是,当我插入一些数据到这个表中,updated_at并且created_at字段为空.如何使用当前时间戳自动完成它们?
我插入这样的数据:
\DB::table('admin_lots')->insert([
'lot' => $request->cycle_lot,
'is_active' => '1',
]);
Run Code Online (Sandbox Code Playgroud)
谢谢.
插入数据时可能不使用Eloquent,在这种情况下,您应手动添加时间戳.
如果您不想这样做,但仍需要填充时间戳,请使用此hack:
$table->timestamp('created_at')->default(\DB::raw('CURRENT_TIMESTAMP'));
$table->timestamp('updated_at')->default(\DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));
Run Code Online (Sandbox Code Playgroud)
更新
根据您更新的代码,这是另一个解决方案:
\DB::table('admin_lots')->insert([
'lot' => $request->cycle_lot,
'is_active' => '1',
'created_at' = \Carbon\Carbon::now()->toDateTimeString(),
'updated_at' = \Carbon\Carbon::now()->toDateTimeString()
]);
Run Code Online (Sandbox Code Playgroud)
小智 5
您必须在laravel中使用create方法而不是insert方法。Create方法会自动为created_at和Updated_at字段添加时间戳。
User::create(array('name' => 'John'));
| 归档时间: |
|
| 查看次数: |
21222 次 |
| 最近记录: |