Yii Framework Forum: Problema de clave unica - Yii Framework Forum

Jump to content

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

Problema de clave unica Unique key exception de la base de datos Rate Topic: -----

#1 User is offline   moisty70 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 58
  • Joined: 23-December 09

Posted 31 May 2010 - 11:17 AM

Hola a todos,

Tengo un error de clave primaria de la base de datos y se me presenta la página de error del framework en lugar de un mensaje en la aplicación indicando de que error se trata.

Como puedo transformar esa excepcion del tipo "CDbCommand failed to execute the SQL statement: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '5-1' for key 2" En un mensaje de error a presentar en el formulario de alta relleno con los datos intruducidos.

Gracias

Saludos.
0

#2 User is offline   Jack Fiallos 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 256
  • Joined: 15-October 09
  • Location:Mexico

Posted 31 May 2010 - 11:20 PM

Podrias trabajar con excepciones.. pero si tienes duplicadas las claves en una tabla deberias revisar primero la existencia del id que vas a insertar..
Celestic Dev Team
Yii Open Source Project Manager
0

#3 User is offline   moisty70 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 58
  • Joined: 23-December 09

Posted 01 June 2010 - 02:35 AM

¿Como reviso que esos dos campos no estén en ningun registro de la tabla? ¿Con una sentencia hecha a medida? ¿No lo valida el framework?

Yo recojo la excepcion de duplicate entry, pero como transformo el mensaje para que esté en los errores que se presentan en la view:

<?php echo $form->errorSummary($model); ?>

0

#4 User is offline   Jack Fiallos 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 256
  • Joined: 15-October 09
  • Location:Mexico

Posted 01 June 2010 - 09:56 AM

Segun he visto las consultas que realiza el framework nunca valida datos a menos que utilizes una regla en el modelo la cual digas que el campo es de tipo unique..

http://www.yiiframew.../api/CValidator
Celestic Dev Team
Yii Open Source Project Manager
0

#5 User is offline   moisty70 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 58
  • Joined: 23-December 09

Posted 01 June 2010 - 10:52 AM

View PostJack Fiallos, on 01 June 2010 - 09:56 AM, said:

Segun he visto las consultas que realiza el framework nunca valida datos a menos que utilizes una regla en el modelo la cual digas que el campo es de tipo unique..

http://www.yiiframew.../api/CValidator


Si, el CValidator para un campo funciona perfectamente, pero en mi caso la clave única es de dos campos.

He encontrado esto http://www.yiiframew...__fromsearch__1
0

#6 User is offline   Jack Fiallos 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 256
  • Joined: 15-October 09
  • Location:Mexico

Posted 01 June 2010 - 11:14 AM

Hasta donde tengo entendido no puedes utilizar con Yii 2 claves primarias en una sola tabla.. entonces supongo que la tabla de la cual hablas es una tabla intermedia.. por lo que supongo que puedes hacer 3 cosas..

1.- Verificar mediante una consulta si los registros que insertaras ya existen y sino existen insertarlos
2.- Eliminar todos los registros y volverlos a insertar mediante barrido e insercion
3.- si es una tabla intermedia, quitar el atributo de llave primaria a los campos lo que permitira insertar duplicados
Celestic Dev Team
Yii Open Source Project Manager
0

#7 User is offline   PoL 

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

Posted 01 June 2010 - 11:18 AM

Por mas que una tabla tenga clave primaria, la combinacion de otros dos campos (que no incluyan la clave primaria) puede declararse como unique...

Lo mejor es hacer tu propio validador como sugirio mbi en el post que encontraste
Don't say what you think, think what you say
The problem is communication! Excess of communication!
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