解决Laravel 使用insert插入数据,字段created_at为0000的问题

据官方文档的说明,使用Eloquent ORM,插数据库的时候可以自动生成created_at,updated_at,代码如下:

Model里的代码:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Notice extends Model
{
  protected $guarded = [];

  //获取部门名称
  public function fromDep(){
    return $this->belongsTo('App\Models\Department','from','id');
  }

  public function toDep(){
    return $this->belongsTo('App\Models\Department','to','id');
  }

  public function toUser(){
    return $this->belongsTo('App\User','create_user','id');
  }
}

新增的代码

public function store(Request $request)
  {
    $data = $request->only(['title','sort','level','from','content','document']);
    $data['creater'] = Auth::user()->id;
    if(Notice::insert($data)){
      return ResponseLayout::apply(true);
    }else{
      return ResponseLayout::apply(false);
    }
  }

插入一条数据,数据库中created_at和updated_at字段为0000-00-00 00:00:00。

原因分析:原生的插入语句,Laravel是不会自动帮你插入created_at和updated_at字段的。

解决方法

create

public function store(Request $request)
  {
    $data = $request->only(['title','sort','level','from','content','document']);
    $data['creater'] = Auth::user()->id;
    if(Notice::create($data)){
      return ResponseLayout::apply(true);
    }else{
      return ResponseLayout::apply(false);
    }
  }

save

public function store(Request $request)
  {
    $data = $request->only(['title','sort','level','from','content','document']);
    $data['creater'] = Auth::user()->id;
    $notice = new Notice($data);
    if($notice->save()){
      return ResponseLayout::apply(true);
    }else{
      return ResponseLayout::apply(false);
    }
  }

以上这篇解决Laravel 使用insert插入数据,字段created_at为0000的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Laravel timestamps 设置为unix时间戳的方法

    Laravel 修改 timestamps 为 unix 时间戳 <?php namespace App; use Illuminate\Database\Eloquent\Model; /** * Class Test * @package App */ class Test extends Model { /** * @var string */ protected $table='test'; /** * @var array */ protected $fillable = [ 'nam

  • laravel model模型定义实现开启自动管理时间created_at,updated_at

    时间戳 默认情况下,Eloquent 期望 created_at 和updated_at 已经存在于数据表中,如果你不想要这些 Laravel 自动管理的数据列,在模型类中设置 $timestamps 属性为 false: <?php namespace App; use Illuminate\Database\Eloquent\Model; class Flight extends Model { /** * 表明模型是否应该被打上时间戳 * * @var bool */ public $ti

  • 解决Laravel 使用insert插入数据,字段created_at为0000的问题

    据官方文档的说明,使用Eloquent ORM,插数据库的时候可以自动生成created_at,updated_at,代码如下: Model里的代码: <?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Notice extends Model { protected $guarded = []; //获取部门名称 public function fromDep(){ return $this->b

  • 解决Hibernate JPA中insert插入数据后自动执行select last_insert_id()

    今天做项目遇到了一个问题,是以前没注意的.我用的是Spring MVC+ Hibernate JPA + MySQL数据库.在插入数据后SQL执行日志中会多出一条select语句: 复制代码 代码如下: Hibernate: insert into click_statstic (logDate, memoId, src, typeId) values (?, ?, ?, ?)Hibernate: select last_insert_id() 表中有个主键是自增列.可是在以往的项目中,没发现有

  • laravel 解决Eloquent ORM的save方法无法插入数据的问题

    学习laravel中: 今天在测试使用Eloquent ORM将数据使用 save()方法插入到mysql中时,出现了错误,如图所示: 在网上查阅资料后找到了原因: 使用save方法新增数据: laravel会默认维护 created_at , updated_at 两个字段,这两个字段都是存储时间戳,整型11位的,因此使用时需要在数据库添加这两个字段.如果不需要这个功能,只需要在模型里加一个属性:public $timestamps=false; 以及一个方法,可以将当前时间戳存到数据库 pr

  • 完美解决Thinkphp3.2中插入相同数据的问题

    问题描述 今天在使用TP3.2插入数据的时候,为了避免插入相同的数据(所谓相同的数据,其主键相同或者是唯一索引的字段相同),我创建的索引如下图,主键索引为自增字段,不可能出现重复,即唯一索引可能会出现重复,我希望的是uid,year,mounth,day 这三个字段出现相同的话,就更新当前记录. 问题解决办法 在之前面对这样的问题的时候,我们知道,MySQL提供了ON DUPLICATE KEY UPDATE或者REPLACE INTO来解决. 使用ON DUPLICATE KEY UPDATE

  • insert和select结合实现"插入某字段在数据库中的最大值+1"的方法

    本文是mysql 数据库 问题一 将表一的数据导入表二: 将表一的数据导入表二: 将表二中的数据 插入到 表一,表一的列对应表二 select 出来的列 INSERT INTO 表一 (column1, column2, column3, column4) select column1, column2, column3, column4 from 表二 问题二 表中插入数据时,某一字段取数据库中该字段的最大值,并+1, 在表中插入数据时,某一字段取数据库中该字段的最大值,并+1,这个问题很多人

  • 如何在mybatis中向BLOB字段批量插入数据

    最近接手一个需求,需要用xxl-job定时任务同步三方库中新增的数据,粗略一看挺得意,以为一两小时就搞定了,但事与愿违,编码两小时却被一个BLOB字段玩了一下午. 每次获取50条数据过来,每条数据中有一个字段是BLOB类型的图片,需求也要将图片放入数据库(个人不建议这么玩,生产上千万的数据会造成数据库很臃肿,建议放到ftp或者minio上比较好),字段中的图片过来时已经被转换成了base64的格式,在往数据库批量插入时,数据库BLOB字段对应的实体使用byte[],程序执行时报了如下错误: or

  • JSP MySQL插入数据时出现中文乱码问题的解决方法

    当向 MySQL 数据库插入一条带有中文的数据形如 insert into employee values(null,'张三','female','1995-10-08','2015-11-12','Sales',2000,'是个好员工!'); 出现乱码时,可以使用语句 show variables like 'character%'; 来查看当前数据库的相关编码集. 从上图中可以看到 MySQL 有六处使用了字符集,分别为:client .connection.database.results

  • java向mysql插入数据乱码问题的解决方法

    遇到java向mysql插入数据乱码问题,如何解决? MySQL默认编码是latin1 mysql> show variables like 'character%'; +--------------------------+--------------------------+ | Variable_name | Value | +--------------------------+--------------------------+ | character_set_client | la

  • MySQL插入数据时插入无效列的解决方法

    1.错误描述 com.mysql.jdbc.exception:jdbc4.MySQLSyntaxErrorException:Unknown column 'man' in 'field list' 2.错误原因 数据库表中的字段:sno sname sage ssex 插入数据时: sno sname sage man 本来是想插入ssex这个字段的值为"man",结果将man弄成了ssex字段名 3.解决办法 在插入时,给字符串类型的字段值加上双引号

  • Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法

    本文实例讲述了Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法.分享给大家供大家参考,具体如下: 前言: 想把QQ日志爬虫(Python)爬下来的日志保存到 MongoDB 里面. 但 insert 的时候报错: E11000 duplicate key error collection: QQ.Blog index: _id_ dup key: { : "965464518_1301232446" } 后来知道错误的原因是:插入的数据和已有数据的 ID

随机推荐