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

时间:2018-02-08 09:09:07

标签: php mysql laravel eloquent

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

2 个答案:

答案 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');
    }

注意: 使用碳\碳;

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