max*_*n15 28 php datetime laravel laravel-4
我似乎无法created_at使用Laravel在数据库表中插入数据.我正在尝试从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();
Run Code Online (Sandbox Code Playgroud)
但它给出了一个错误:
Uncaught exception 'InvalidArgumentException' with message in Carbon.php
Run Code Online (Sandbox Code Playgroud)
和
Unexpected data found. Unexpected data found. Data missing in Carbon.php
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?我需要将$timestamps模型设置为false吗?(我真的不想这样做因为我很自然地插入了它updated_at)
Jer*_*dev 40
在您的User模型中,在User类中添加以下行:
public $timestamps = true;
Run Code Online (Sandbox Code Playgroud)
现在,无论何时保存或更新用户,Laravel都会自动更新created_at和updated_at字段.
更新:
如果要手动设置创建,则应使用日期格式Y-m-d H:i:s.问题是您使用的格式与Laravel用于该created_at字段的格式不同.
更新:2018年11月Laravel 5.6
"message": "Access level to App\\Note::$timestamps must be public",
确保您拥有适当的访问级别.Laravel 5.6是public.
Sab*_*ett 19
您可以使用Laravel手动设置它,只需记住将'created_at'添加到$ fillable数组:
protected $fillable = ['name', 'created_at'];
Run Code Online (Sandbox Code Playgroud)
eit*_*hed 10
当前(Laravel 5.4)实现此目的的方法是:
$model = new Model();
$model->created_at = Carbon::now();
$model->save(['timestamps' => false]);
Run Code Online (Sandbox Code Playgroud)
$data = array();
$data['created_at'] =new \DateTime();
DB::table('practice')->insert($data);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
77725 次 |
| 最近记录: |