长期异常:找不到四位数年份使用受保护日期时数据丢失



我正在使用Eloquent作为DBAL/Active Record重构一个旧应用程序,一切都很顺利,但当我在模型中添加"protected$dates"时,我出现了一个严重的错误:

Warning: array_map(): An error occurred while invoking the map callback in [CUT]vendorilluminatesupportCollection.php on line 1024
Exception: A four digit year could not be found Data missing

这是我的型号:

class dbPazienti extends IlluminateDatabaseEloquentModel
{
    public $timestamps = false;
    protected $table = 'pazienti';
    protected $primaryKey = 'pkid';
    protected $dates = ['DataNascita','Richiamareil','deleted_at'];
    protected $fillable = ['Titolo','Nome','SecondoNome','Cognome','CodiceFiscale','Indirizzo','Cap','Localita','Provincia','Telefono','Email','Sesso','DataNascita','ComuneNascita','ProvinciaNascita','MedicoCurante','Note','Richiamareil'];
    public function ecografie()
    {
        return $this->hasMany('dbEcografie', 'fk_idPaziente', 'pkid');
    }
    public function scopeMedicoDiBase($query, $mdb=0)
    {
        return $query->with(['ecografie' => function ($query) {
            $query->where('mdb', '=', $mdb);
        }]);
    }
}

如果我评论这一行,我没有得到任何错误:

protected $dates = ['DataNascita','Richiamareil','deleted_at'];

但当然,这些字段不会被视为日期

以下是数据库中这些字段的值:

  • 1962-09-20 00:00:00
  • 0000-00-00 00:00:00
  • NULL
  • 2015年12月28日

我该怎么解决这个问题?我做错什么了吗?

提前感谢

我不熟悉这种语言,但我首先要考虑的是该语言是否可以将Null视为日期,以及是否可以将0000-00-00 00:00:00视为日期。

如果你不确定你可以花一些时间在谷歌上搜索,或者一种快速直观的方法是尝试使用Null,但使用0000-00-00 00:00:00,反之亦然,然后尝试不使用任何一种。

如果你在这两个错误中只有一个出现的情况下出现错误,那就是你的问题。如果你在其中一个存在的情况下得到错误,那么它们都是问题。如果你在两人都不在场的情况下都犯了错误,那么还有其他事情在发生,但嘿,你累了,也许在这个过程中学到了一些东西。

最新更新