我是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'),
);
}
请帮助
答案 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()
输入当前日期。