在yii中自动插入日期时间

时间:2015-07-31 10:00:19

标签: php yii

我是Yii Framework的新手。我想在输入新记录时在数据库中插入日期。我的模型规则是

public function rules()
    {
        // NOTE: you should only define rules for those attributes that
        // will receive user inputs.
        return array(
            array('user_id, question, creation_Datetime, creator_id', 'required'),
            array('user_id, creator_id', 'numerical', 'integerOnly'=>true),
            // The following rule is used by search().
            // Please remove those attributes that should not be searched.
            array('id, user_id, question, creation_Datetime, creator_id', 'safe', 'on'=>'search'),
        );
    }

请帮助

3 个答案:

答案 0 :(得分:1)

在问题评论中@chris将其指向Yii 2,但通过查看数组格式,您可以清楚地知道您正在使用Yii 1.0或Yii 1.1

所以我在这里写了两个解决方案。

Yii 1.1

public function behaviors(){
   return array(
      'CTimestampbehavior' => array(
         'class' => 'zii.behaviors.CTimestampbehavior',
         'createAttribute' => 'creation_Datetime',
      )
   );
}

Yii 1.0

因为yii 1.0没有CTimestampbehavior课程。您可以在模型中使用这种方式:

public function beforeSave() {
  if($this->isNewRecord) {
    $this->creation_Datetime = new CDbExpression('NOW()');
  }
}

答案 1 :(得分:1)

您可以使用refrence

public function beforeSave() {
    if ($this->isNewRecord)
        $this->created = new CDbExpression('NOW()');
    else
        $this->modified = new CDbExpression('NOW()');

    return parent::beforeSave();
}

/**
 * @return array validation rules for model attributes.
 */
public function rules()
{
    return array(
        array('title','length','max'=>255),
        array('title, created, modified', 'required'),
        array('modified','default',
              'value'=>new CDbExpression('NOW()'),
              'setOnEmpty'=>false,'on'=>'update'),
        array('created,modified','default',
              'value'=>new CDbExpression('NOW()'),
              'setOnEmpty'=>false,'on'=>'insert')
    );
}

答案 2 :(得分:-1)

在MySQL中,您可以使用now()输入当前日期。