Date 拉威尔5.1韩元';t将日期保存到设置为00-00-00:00:00的数据库中

Date 拉威尔5.1韩元';t将日期保存到设置为00-00-00:00:00的数据库中,date,laravel,laravel-5,laravel-5.1,Date,Laravel,Laravel 5,Laravel 5.1,我正在使用此引导发送日期,格式为创建的MMM D,YYY,不能提交与默认情况下显示给用户的格式不同的格式 因此,在服务器端,我为模型中的日期添加了一个变量: 公共函数setStartDateAttribute($startDate){ //dd(Carbon::parse($startDate)->toDateTimeString()); 返回Carbon::parse($startDate)->toDateTimeString(); } 当我dd时,该值看起来应该2015-10-22 00:

我正在使用此引导发送日期,格式为创建的
MMM D,YYY
,不能提交与默认情况下显示给用户的格式不同的格式

因此,在服务器端,我为模型中的日期添加了一个变量:

公共函数setStartDateAttribute($startDate){
//dd(Carbon::parse($startDate)->toDateTimeString());
返回Carbon::parse($startDate)->toDateTimeString();
}
当我
dd
时,该值看起来应该
2015-10-22 00:00:00
,但它将日期保存为
0000-00-00 00:00
,或者根本没有设置日期,我不明白

我不想更改数据库中时间戳的格式,因此我没有在模型的
$dates
数组中设置
$dateFormat
'start\u date'
。我觉得变异基因似乎更容易。在迁移文件中,该字段被设置为
date()
,我很确定我以前做过这项工作,它刚刚起作用。因此,我在我的控制器中尝试了它,但没有使用变异器,同样的线路也起作用:

公共功能更新(TournamentRequest$request,$tournamentId)
{
//使用所有可填充的数据更新锦标赛,并保存到数据库
$tournament=tournament::find($tournamentId)->fill($request->except('start_date');
$tobullenge->start_date=Carbon::parse($request->start_date)->toDateTimeString();
$touring->save();
return重定向::route('dashboard.tournaments.index');
}

为什么相同的代码在控制器内部工作而没有模型中的mutator设置,但在使用mutator时不工作?

这就是为属性创建setter方法的方式。注意:您不返回任何内容,只需为属性指定一个值:

公共函数setStartDateAttribute($startDate){
$this->attributes['start_date']=Carbon::parse($startDate)->toDateTimeString();
}

假设您想在表中设置一个名为
start\u date
的字段。

Erm。。。为什么你的变种人只是返回值,而不是实际设置开始日期属性?哈哈@MattGibson,哦,伙计,我一直在盯着这个,研究其他东西,想知道出了什么问题。。。谢谢哦,真可惜。