php - 使用 Laravel 插入 created_at 数据

标签 php datetime laravel laravel-4

我似乎无法使用 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_atupdated_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/

相关文章:

php - 使用 php 显示服务器 ioncube 加载程序版本

java - 如何做 PHP explode (", "), list(), foreach() in Java style

javascript - Momentjs 或 Nodejs 中没有美国夏威夷时区

MySQL 调度冲突

php - 仅从连接表中获取指定列

php - Laravel 在连接后计算行数

php - 使用 whereIn 为 foreach() laravel 提供的参数无效 (laravel 5.3)

php - PHP 中的 SQL Server 存储过程输出参数

php - XSLT 使用正则表达式、单词边界搜索 XML

php - 如果要在多个时区运行应用程序,我们应该以日期格式还是以日期时间格式存储日期?