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

Posted

技术标签:

【中文标题】如何在 Laravel 中更新 created_at 的列属性【英文标题】:How do I update the column attribute of created_at in Laravel 【发布时间】:2020-10-23 17:50:22 【问题描述】:

我想添加我的用户的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';

【问题讨论】:

好吧,created_at 字段实际上是时间戳字段,而不是日期时间,因此您可能遇到了更改列类型的原则限制。检查***.com/questions/32940495/… 【参考方案1】:

在 User 模型中,将 'created_at' 列添加到模型的 $fillable 属性中。

protected $fillable = ['name', 'created_at'];

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

【讨论】:

以上是关于如何在 Laravel 中更新 created_at 的列属性的主要内容,如果未能解决你的问题,请参考以下文章

如何在 laravel 5 中使用 Eloquent 更新数据透视表

如何在 Laravel 中更新 Example.vue?

如何在 AWS 上更新 laravel 项目

如何在 laravel 中更新时验证电子邮件

如何在 Laravel 的 DataTable 列表页面中更新状态

如何检查记录是不是已经存在,然后在 laravel 中更新或插入?