Laravel 处理日期/时间时对非对象调用成员函数format()

Laravel 处理日期/时间时对非对象调用成员函数format(),laravel,laravel-4,Laravel,Laravel 4,我正在尝试将一些数据保存到数据库中,需要在保存之前格式化日期/时间 我的代码如下: public static function toSqlDate($date, $formatResult = true) { if (!$date) { return null; } $dateTime = DateTime::createFromFormat(DEFAULT_DATETIME_FORMAT, $d

我正在尝试将一些数据保存到数据库中,需要在保存之前格式化日期/时间

我的代码如下:

public static function toSqlDate($date, $formatResult = true)
    {
        if (!$date)
        {
            return null;
        }

        $dateTime = DateTime::createFromFormat(DEFAULT_DATETIME_FORMAT, $date, new DateTimeZone(DEFAULT_TIMEZONE));

        return $formatResult ? $dateTime->format('Y-m-d') : $dateTime;
    }
当我试图保存时,调试器中出现以下错误。返回行是高亮显示为有错误的行

Symfony\Component\Debug\Exception\FatalErrorException
对非对象调用成员函数format()

我甚至不知道该如何解决这个问题。有没有一种方法可以在抛出错误之前输出每个被拉入的值?我正在试图弄清楚什么$dateTime没有作为对象返回

任何帮助都将不胜感激

一些补充资料:

我已经创建了一个指向上述函数的实用程序/别名,并在我的模型存储库中通过以下方式访问它

public function save($publicId, $data)
{ 
...

    $form->date = Utils::toSqlDate($data['date']);
    ...
    $form->save();

...
}
在我看来,我有以下领域

{{ Former::text('date')->addClass('form-control form-control-inline input-medium default-date-picker')->data_bind("datePicker: date, valueUpdate: 'afterkeydown'") }}

您可以在您的
雄辩模型中创建
mutator
方法,以便在保存任何模型时自动进行转换,例如,如果您的
用户
模型中的时间戳为
dob
,则只需在
用户
模型中添加以下方法:

public function setDobAttribute($value)
{
    $dt = \Carbon\Carbon::createFromFormat('Y/m/d', $value)->toDateString();
    $this->attributes['dob'] = $dt;
}
因此,您可以只保存一个用户模型easilt,如:

$user = new User;
$user->dob = Input::get('dob');
// ...
$user->save();

日期将使用
用户
模型中定义的
mutator/setDobAttribute
方法自动为您设置,您无需执行任何操作。

您可以在
雄辩模型
中创建
mutator
方法,以便在保存任何模型时自动进行转换,例如,如果在
用户
模型中有时间戳为
dob
,则只需在
用户
模型中添加以下方法:

public function setDobAttribute($value)
{
    $dt = \Carbon\Carbon::createFromFormat('Y/m/d', $value)->toDateString();
    $this->attributes['dob'] = $dt;
}
因此,您可以只保存一个用户模型easilt,如:

$user = new User;
$user->dob = Input::get('dob');
// ...
$user->save();

日期将使用
用户
模型中定义的
mutator/setDobAttribute
方法自动为您设置,您不需要做任何事情。

您如何调用您的
toSqlDate()
,您能展示一些代码是如何使用的吗?@unawut我添加了其他信息,谢谢你的时间。哦,如果是那样的话,就跟着@WereWolf-阿尔法的答案走吧,你应该准备好了!你如何调用你的
toSqlDate()
,你能展示一些代码是如何使用的吗?@Unnawut我已经添加了额外的信息,谢谢你的时间。哦,在这种情况下,只需跟随@WereWolf-阿尔法的答案,你就可以了!