Unexpected data found during save on eloquent / Laravel
Solution 1
You array returned from getDates was merged with the dafault one resulting in:
['created_at','updated_at','deleted_at','date','created_at','updated_at'];
so use only 'date' there and should be fine.
Try setting up a mutator for 'date' to convert the data from input into timestamp format. The error you get is not on Eloquent but Carbon.
public function setDateAttribute($value)
{
$this->attributes['date'] = Carbon\Carbon::createFromFormat('d-m-Y h:i', $value);
}
Also there is mistake in the docs, as getDates defines date accessors, not mutators..
Solution 2
Try this:
Carbon::createFromFormat('d.m.Y H:i', $request->publishdate);
Fabrizio Fenoglio
Updated on November 08, 2020Comments
-
Fabrizio Fenoglio over 3 years
I have one more field on the database over the
created_at
andupdated_at
asTIMESTAMP
the field name is date.So i overwritten the method
getDates()
on my model eloquent because i wanted that field be instantiated from Carbon.public function getDates() { return ['date','created_at','updated_at']; }
But when i go to create a new record on the database it throw me an exception:
InvalidArgumentException Unexpected data found. Unexpected data found. Unexpected data found.
Ps: the value sent from the form is in EU format:
d-m-Y h:i
I don't know how figure out this problem any suggestion are appreciated
-
Fabrizio Fenoglio about 10 yearsTried but seem not be this one the problem thanks. Anyway is not merged but is overwritten.
-
Jarek Tkaczyk about 10 yearsYes, my bad. I just now realized what the problem is. Check the edit.
-
Fabrizio Fenoglio about 10 yearsYes this is the right answer i tried on this way for see if it work and it does. :) Thanks mate.
-
Kamlesh almost 5 yearsIf you are modifying format of any date then use alias name like DB::raw('(case when backup_records.created_at IS NOT NULL then date_format(backup_records.created_at, "%d-%m-%Y %h:%i:%s %p") else "Not Available" end) as created_at_text') instead of 'created_at'.