我正在使用Laravel Eloquent,我有一个带有日期字段的模型。
我的日期值为 dd / mm / yyyy 。 通过导入CSV文件将数据输入系统。文件中的日期值采用 dd / mm / yyyy 格式。
如何通过laravel eloquent模型插入格式为 dd/mm/yyyy
的日期。
我的模型问题如下。
class Issue extends Model
{
protected $table = 'issue';
protected $primaryKey = 'ACC_NO';
protected $keyType = 'String';
public $incrementing = false;
public $timestamps = false;
protected $dates= ['issue_date','due_date'];
public function setIssueDateAttribute($value)
{
$this->attributes['issue_date'] = Carbon::createFromFormat('d/m/Y', $value)->toDateString();
}
public function setDueDateAttribute($value)
{
$this->attributes['due_date'] = Carbon::createFromFormat('d/m/Y', $value)->toDateString();
}
}
但是它仍未设置为mysql数据库中dd / mm / yyyy的格式
答案 0 :(得分:3)
您可以使用$model->your_date_property = Carbon::parse($someDate)->format('dd/mm/yyyy');
或者您可以自动执行此操作。来自the docs:
默认情况下,时间戳格式为'Y-m-d H:i:s'。如果需要自定义时间戳格式,请在模型上设置
$dateFormat
属性。此属性确定日期属性在数据库中的存储方式。
protected $dateFormat = 'dd/mm/yyyy';
答案 1 :(得分:0)
您似乎正在尝试以特定格式存储或检索日期值 数据库接受Y-m-d format.i.e(yyyy-mm-dd)的数据 我建议你为相应的型号定义一个存取器。 E.g
public function getCreatedAtAttribute($value)
{
$date = Carbon::parse($value);
return $date->format('d-m-Y');
}
注意: 使用碳\碳;
在课程开始之前在模型文件中使用它。