Nuevo Campo En Bd

Buenas a todos, soy novato en yii y este foro me ha ayudado con varias dudas que he tenido, pero como no he encontrado solución para esta creé este tema.

Ya tengo el CRUD creado, pero ahora agregué un campo nuevo a la BD llamado reg_creac que es un DATE, la idea de este campo es almacenar automáticamente la fecha en la que se crea un nuevo registro en la BD. El problema es que no logro se almacene la fecha.

Revisando otros temas he tratado algo como:

En rules puse:

array(‘reg_creacion’, ‘reg_fecha’),

y reg fecha es una función:

public function reg_fecha($attribute,$params){

	$model->reg_creacion = new CDbExpression('NOW()');


}

Pero no me ha funcionado.

Agradezco su ayuda!!!!!!!

Debes sustituir $model por $this

Por otro lado no me gusta mucho como lo estas haciendo, si puedes colocar el valor NOW() por defecto directamente en base de datos, o en el controlador la acción create puedes declarar la siguiente sentencia antes del save()


$model->reg_creacion = new CDbExpression('NOW()');

El problema de dejarlo como lo tienes actualmente es que el valor de ese campo se va actualizar también cuando hagas modificaciones a ese registro, tendrías que desarrollar un poco mas la función para detectar si es un nuevo registro o una modificación etc.

Muchas gracias por la respuesta.

En vez de realizarlo en la BD queria hacerlo como expliqué para ir entendiendo mas yii, pero no habia notado que se actualizaría al realizar update tambien… creo que mejor lo realizaré directamente en la BD.

Muchas gracias!

No tiene pq actualizarse en update, para eso están los escenarios.




array('reg_creacion', 'reg_fecha', 'on'=>'create'),



Un saludo.

PD.: por supuesto en tu actionCreate tienes q crear el modelo para el escenario:




$model = new NombreModelo('create');