雄辩的例外:无法找到四位数年份使用受保护日期时数据丢失

时间:2016-05-11 22:30:08

标签: mysql eloquent

我使用Eloquent重构旧应用程序作为DBAL / Active Record一切正常,但是当我添加"受保护的$ dates"在我的模型中,我遇到了这个令人讨厌的错误:

Warning: array_map(): An error occurred while invoking the map callback in [CUT]\vendor\illuminate\support\Collection.php on line 1024

Exception: A four digit year could not be found Data missing

这是我的模特:

class dbPazienti extends Illuminate\Database\Eloquent\Model
{
    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日

我该如何解决这个问题?我做错了吗?

提前谢谢

1 个答案:

答案 0 :(得分:0)

我对这种语言不熟悉,但我要看的第一件事就是语言是否可以将Null视为日期,如果它可以处理00:00:00。

如果你不确定你是否可以花一些时间在Google上搜索,或者可能是一种快速直观的方法来确定它是尝试用Null但是在00:00:00,反之亦然然后尝试没有。

如果在只有这两个中的一个存在时出现错误,那么这就是你的问题。如果你遇到任何一个错误,那么它们都是问题。如果你没有出现错误,那么还有其他事情发生,但是你厌倦了,也许在这个过程中学到了一些东西。