如何在 Laravel 中更新 created_at 的列属性

3

我想为我的用户 created_at 列添加精度。所以,我创建了另一个迁移文件来更新 created_at 的属性,但它没有起作用。

这是我的迁移文件:

 /**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
    Schema::table('users', function (Blueprint $table) {
        $table->dateTime('created_at', 3)->change();
    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::table('users', function (Blueprint $table) {
        $table->dropColumn('created_at');
    });
}

当我运行 php artisan migrate 时,没有出现错误。但是每当我尝试创建一个新用户时,它不会反映更改。

我还在我的用户模型中添加了日期格式。

protected $dateFormat = 'Y-m-d H:i:s.v';

1
嗯,created_at字段实际上是一个时间戳字段,而不是dateTime字段,所以也许你正在经历一个Doctrine更改列类型的限制。请查看https://dev59.com/rFwY5IYBdhLWcg3wJlAq#40047800 - Kurt Friars
1个回答

0
在User模型中,将'created_at'列添加到模型的$fillable属性上。
protected $fillable = ['name', 'created_at'];

当您保存/更新用户时,Laravel将自动更新'created_at'字段。此外,时间戳列的正确日期格式为'Y-m-d H:i:s'


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接