Yii2-创建记录时未保存时间

时间:2017-12-13 10:49:03

标签: php datetime model yii2

我正在创建一个有created_at (datetime)字段的记录。保存记录时,仅将日期保存到数据库中。

制作行动

 public function actionCreate()
{
    $model = new Meters();


    if ($model->load(Yii::$app->request->post()) && $model->save()) {

        return $this->redirect(['view', 'id' => $model->id]);
    } else {
        return $this->render('create', [
            'model' => $model,
        ]);
    }
}

保存的日期类似于2017-12-03 00:00:00。我也使用了var_dump($model)而且我得到了约会而不是时间。

我不知道我错过了什么。

更新1

我的模特是

public function rules()
{
    return [
        [['meter_msn','description','meter_status','historic'],'required'],
        //[['meter_msn'],'unique','message'=>'This meter already exists'],
        [['created_at', 'updated_at','comments'], 'safe'],
        [['created_by', 'updated_by', 'status','historic'], 'integer'],
        [['description', 'meter_msn'], 'string', 'max' => 200],
    ];
}

/**
 * @inheritdoc
 */
public function attributeLabels()
{
    return [
        'id' => 'ID',
        'description' => 'Name',
        'meter_msn' => 'Meter MSN',
        'created_at' => 'Created At',
        'updated_at' => 'Updated At',
        'created_by' => 'Created By',
        'updated_by' => 'Updated By',
        'status' => 'Status',
        'comments' => 'Comments',
        'meter_status' => 'Meter Status',
        'historic'=> 'Version'
    ];

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

将以下内容添加到您的模型中:

 public function beforeSave($insert) 
{
    if($this->isNewRecord) {
        $this->created_at = date('Y-m-d H:i:s');
    }else {
        $this->updated_at = date('Y-m-d H:i:s');
    }
    return parent::beforeSave($insert);
}