当日期格式正确并且数据也被存储时,laravel中的数据丢失错误以及仍然出现错误

时间:2019-03-14 08:46:01

标签: php laravel php-carbon

大家好,我正在使用laravel 5.7插入数据时遇到“数据丢失”的问题,但是数据也在插入,但在这里却由于共享我的部分代码而报错

模型

public function setApplicationDateAttribute($input)
{
    if($input != '') {
        $this->attributes['application_date'] = Carbon::createFromFormat(config('quickadmin.date_format'), $input)->format('Y-m-d');
    }else{
        $this->attributes['application_date'] = '';
    }
}

这是检查输入数据日期格式的功能现在这是我的 config 文件夹中的文件,名为 quickadmin ,我将向您显示其代码< / p>

return [

/**
 * Datepicker configuration:
 */
'date_format'        => 'Y-m-d',
'date_format_jquery' => 'yy-mm-dd',
'time_format'        => 'H:i:s',
'time_format_jquery' => 'HH:mm:ss',

/**
 * Quickadmin settings
 */
'route'              => 'admin',
'homeRoute'          => 'admin',
'defaultRole'        => 1];

现在这是 Controller

的代码
$locumApplications = ModelName::create([
               'user_id' => $request->user_id,
               'locum_id' => $request->locum_id,
               'application_date' => $request->application_date
           ]);

它插入数据但给我错误,如果我删除行'application_date' => $request->application_date,它仍然显示错误

在这里我附上了错误图片 enter image description here

2 个答案:

答案 0 :(得分:0)

您的配置:config('quickadmin.date_format')Y-m-d

您正在尝试设置属性

Carbon::createFromFormat(config('quickadmin.date_format'), $input)->format('Y-m-d');

您的$input ($request->application_date)必须采用Y-m-d格式

应该工作

\Carbon\Carbon::createFromFormat('Y-m-d', '2019-03-14')->format('Y-m-d') //OP: 2019-03-14

您的日期输入和设置属性值看起来像相同的格式

答案 1 :(得分:0)

您能否尝试覆盖YourModel中的默认格式,如下所示:

class YourModel extends Model {
    protected $dateFormat = 'Y-m-d'; // add your date format 
}