如何在 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 更新数据透视表