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.
Page 1 of 1
Problema de clave unica Unique key exception de la base de datos
#2
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
Yii Open Source Project Manager
#3
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:
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); ?>
#4
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
http://www.yiiframew.../api/CValidator
Celestic Dev Team
Yii Open Source Project Manager
Yii Open Source Project Manager
#5
Posted 01 June 2010 - 10:52 AM
Jack 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
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
#6
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
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
Yii Open Source Project Manager
#7
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
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!
The problem is communication! Excess of communication!
Share this topic:
Page 1 of 1

Help













