在Laravel中,你可以使用DB::raw()
来设置默认为当前时间的字段。以下是一个例子,展示了如何在一个迁移文件中为created_at
和updated_at
字段设置默认值:
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AddTimestampsToYourTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('your_table', function (Blueprint $table) {
$table->timestamps(); // 这将创建 created_at 和 updated_at 字段
// 如果你想自定义字段名或者改变类型
$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
$table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('your_table', function (Blueprint $table) {
$table->dropColumn('created_at');
$table->dropColumn('updated_at');
});
}
}
在上述代码中,your_table
应该替换为你要修改的表名。$table->timestamps();
会创建created_at
和updated_at
两个字段,它们会自动设置为当前时间戳。如果你想要更精细地控制这些字段,你可以使用$table->timestamp()
方法,并通过DB::raw()
指定默认值。