通过laravel Eloquent Model以dd / mm / yyyy插入日期格式

问题描述 投票:-3回答:2

我正在使用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的格式

php mysql laravel eloquent
2个回答
0
投票

您似乎正在尝试以特定格式存储或检索日期值,数据库接受Y-m-d format.i.e(yyyy-mm-dd)中的数据我建议您为相应的模型定义一个存取器。例如

public function getCreatedAtAttribute($value)
    {
        $date = Carbon::parse($value);
        return $date->format('d-m-Y');
    }

注意:使用碳\碳;

在课程开始之前在模型文件中使用它。


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';
© www.soinside.com 2019 - 2024. All rights reserved.