Laravel - 保存前转换输入日期格式

时间:2014-09-16 20:47:31

标签: laravel-4 php-carbon

我正在尝试将日期输入转换为正确的mysql格式。 我的start_date字段格式为MM dd,yyyy。

在我的控制器存储功能中,我抓取所有用户输入,包括start_date和保存。

$userProfileData->save();

我认为我能做的就是使用Carbon来保存之前转换start_date。

$userProfileData->start_date->toDateString();

我在非对象错误上调用成员函数toDateString()。

2 个答案:

答案 0 :(得分:5)

我可以通过将此日期格式添加到我的用户控制器存储功能来转换日期格式。

$userProfileData->start_date = date('Y-m-d', strtotime($userProfileData->start_date));

答案 1 :(得分:3)

你得到非对象错误,因为start_date不是方法toDateString()的对象

你可以做的是在你的模型中使用setStartDateAttribute()方法,每次都会调用它来获取start_date属性值,在这个方法中你可以修改值,这样模型就可以使用更新的值进行操作,如编辑或更新它可以如下

public function setStartDateAttribute($value) {
      $this->attributes['start_date'] = date('Y-m-d', strtotime($value) );
}

当你需要获取start_date属性的值时,你的模型会使用以下方法,这个方法必须写在模型中