我似乎无法使用 Laravel 在数据库表中插入 created_at
数据。
我正在尝试从 POST 获取该数据,然后尝试将其保存到数据库。
我目前是这样做的:
$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
我该如何解决这个问题?我是否需要将模型中的 $timestamps
设置为 false? (我真的不想这样做,因为我对它自动插入 updated_at
的方式很满意)
最佳答案
在您的 User
模型中,在 User
类中添加以下行:
public $timestamps = true;
现在,每当您保存或更新用户时,Laravel 都会自动更新 created_at
和 updated_at
字段。
更新:
如果要手动设置创建时间,则应使用日期格式Y-m-d H:i:s
。问题是您使用的格式与 Laravel 用于 created_at
字段的格式不同。
更新:2018 年 11 月 Laravel 5.6
"message": "App\\Note::$timestamps 的访问级别必须是公开的",
确保您也具有适当的访问级别。 Laravel 5.6 是 public
.
关于php - 使用 Laravel 插入 created_at 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26506712/