Yii Framework Forum: Como saber si estoy en create o update? - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Como saber si estoy en create o update? Rate Topic: -----

#1 User is offline   Jeibi 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 10
  • Joined: 29-September 10

Posted 15 October 2010 - 07:34 AM

Hola,

tengo otro problemilla, seguro que hay una manera mas sencilla de como yo quiero hacerlo.
Cuando un usuario se registra, he validado que no exista antes en la base de datos. El problema es que a la hora de modificar el usuario, me salta también la validación y no puedo modificarlo. Lo he conseguido validando si el registro tiene id, pero entonces, cuando creo un registro nuevo, a la hora de grabar, parece como si refrescara la página y me sale la validación. Solo aparece unos segundos y se redirecciona la página, pero claro, eso no queda bien. No se si la solución sería diferenciar de si estoy en create o en update, ¿me pueden ayudar?
Les pongo mi código:

public function rules()
{
	return array(
          .......
        array('USER_GESTOR','disponibility'),
          .....
        );
}

public function disponibility()
  {
    if($this->ID_USER) // Esta validación es para que pueda modificar
      return;

      $usuario=Usuario::model()->find(array(
          'select'=>'USER_GESTOR',
          'condition'=>'USER_GESTOR=:USER_GESTOR',
          'params'=>array(':USER_GESTOR'=>$this->USER_GESTOR),
      ));
      
      
      if($usuario!=null)
          $this->addError('USER_GESTOR','Usuario ya utilizado.');                
  }


Espero haya quedado clara mi duda.
Muchas gracias
0

#2 User is offline   PoL 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 506
  • Joined: 05-November 08
  • Location:Buenos Aires, Argentina

Posted 15 October 2010 - 07:43 AM

Active Record tiene una propiedad que se llama isNewRecord

Tal vez te sirva...
Don't say what you think, think what you say
The problem is communication! Excess of communication!
1

#3 User is offline   sebas 

  • Advanced Member
  • Yii
  • Group: Yii Dev Team
  • Posts: 496
  • Joined: 28-October 08
  • Location:Buenos Aires, Argentina

Posted 15 October 2010 - 09:09 AM

No probaste con unique validator??

Sino verificá que el id de usuario sea el mismo que el que estas modificando.
0

#4 User is offline   Jeibi 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 10
  • Joined: 29-September 10

Posted 18 October 2010 - 01:58 AM

Gracias Pol y Sebas,

Me funcionó con IsNewRecord. Pero aun así, me gustaría como saber si estoy en update o en create, porque dependiendo de un sitio u otro quiero que me aparezcan unos campos u otros.
Me imagino que tendré que controlar la Url, pero igual existe otra manera.

gracias por vuestra ayuda.

saludos
0

#5 User is offline   chux 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 83
  • Joined: 16-September 10

Posted 18 October 2010 - 03:25 AM

Si lo necesitas saber en el controlador es bastante facil (supongo que estás usando el código generado por gii o consola)

actionCreate(){
//es nuevo
}

actionUpdate(){
//estas moficando
}

Si estás dentro de la vista, ya te lo han dicho, dependiendo del valor de isNewRecord
Give a read to my blog.
0

#6 User is offline   Jeibi 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 10
  • Joined: 29-September 10

Posted 18 October 2010 - 03:39 AM

Gracias chux,

ya lo conseguí, era en la vista donde tenía que validarlo.
Perdonad mi ignorancia.

Saludos
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users