Tengo una duda con los ActiveRecords de Yii. Tengo una tabla de Usuarios y el modelo generado con Gii con las siguientes propiedades:
/**
This is the model class for table "usuarios".
The followings are the available columns in table ‘usuarios’:
@property integer $id
@property string $nombre
@property string $pasword
The followings are the available model relations:
@property Cliente[] $clientes
*/
class Usuarios extends CActiveRecord
…
…
etc
Quiero introducir un campo a mayores para que el usuario repita el pasword cuando se registre (‘password_repeat’). Este campo no va a ser guardado en base de datos, simplemente es para obligar a repetir la contrasea en el formulario de registro y validarla.
Mi duda es: Si la defino como una @property en el modelo ¿El ActiveRecord va a intentar buscarle en la tabla y guardarlo, con el consiguiente error?
/**
* This is the model class for table "usuarios".
*
* The followings are the available columns in table 'usuarios':
* @property integer $id
* @property string $nombre
* @property string $pasword
*
* The followings are the available model relations:
* @property Cliente[] $clientes
*/
class Usuarios extends CActiveRecord {
public $password_repeat;
....
y agregar a a las reglas
public function rules()
{
return array(
...
array('password', 'compare', 'compareAttribute'=>'password_repeat'),
...
También fijate que debes realizarlo en los scopes de register y changePassword porque sino cuando estes editando el usuario, no te va a dejar grabar porque te va a pedir repeat password (por default, las rules son para todos los scopes).