Laravel Schema:Null默认值,更新时间戳

She*_*ght 3 php mysql laravel

我刚刚开始与Laravel合作,所以我已经习惯了如何完成任务.

我一直试图做一些我似乎无法找到在线的例子.我正在使用"架构"构建器来创建新表.

我想要的是一个datetime字段,其默认值为NULL,但具有"ON UPDATE CURRENT_TIMESTAMP".

我尝试了很多东西,但这是我最近的尝试:

$table->dateTime('opened_on')->default(Capsule::raw('NULL ON UPDATE CURRENT_TIMESTAMP'));
Run Code Online (Sandbox Code Playgroud)

使用此代码,我得到"open_on'的默认值无效"错误.

任何反馈或建议将不胜感激.

Ale*_*not 7

我通常使用此语法进行迁移:

$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)


Ama*_*mar 5

在 Laravel 中使用->timestamps()

$table->timestamp('opened_on')->useCurrent();
Run Code Online (Sandbox Code Playgroud)

设置默认空数据库表

ALTER TABLE tbl MODIFY `opened_on` DATE DEFUALT NULL;
Run Code Online (Sandbox Code Playgroud)

您必须通过在 laravel 中的迁移来创建数据库表