使用 Laravel 插入created_at数据

2022-08-30 10:41:45

我似乎无法使用Laravel在数据库表中插入数据。我正在尝试从POST中获取该数据,然后尝试将其保存到数据库中。created_at

我目前正在这样做:

$create_dt = date("Y-m-d H:i:s A", strtotime($_POST['post_date']." ".$_POST['post_time']));
$name = $_POST['name'];

$post = new Post();
$post->name = $name;
...
$post->created_at = $create_dt;
$post->save();

但它给出了一个错误:

Uncaught exception 'InvalidArgumentException' with message in Carbon.php

Unexpected data found. Unexpected data found. Data missing in Carbon.php

我该如何解决这个问题?我是否需要在模型中设置为 false?(我真的不想这样做,因为我对它如何自动插入$timestampsupdated_at)


答案 1

在模型中,在类中添加以下行:UserUser

public $timestamps = true;

现在,每当您保存或更新用户时,Laravel都会自动更新和字段。created_atupdated_at


更新:
如果要手动设置创建的,则应使用日期格式。问题在于,您使用的格式与 Laravel 用于该字段的格式不同。Y-m-d H:i:screated_at

更新日期: 2018年11月 Laravel 5.6 确保您也具有适当的访问级别。Laravel 5.6 是 ."message": "Access level to App\\Note::$timestamps must be public",public


答案 2

您可以使用Laravel手动设置,只需记住将“created_at”添加到$fillable数组中即可:

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

推荐