Tengo dos tablas table1
y table2
teniendo cada una una columna llamada email
junto con otras columnas diferentes. Lo que quiero es un validador que busque unicidad en el campo email
de ambas columnas. Encontré un extension que comprueba varias columnas de MISMO tabla. ¿Cómo puedo extenderlo para que funcione para múltiples columnas?Yii validación única en dos columnas de tablas diferentes, es decir. validación única compuesta
Respuesta
Puede utilizar la propiedad className especificar para otras clases ..
Documentación: the ActiveRecord class name that should be used to look for the attribute value being validated. Defaults to null, meaning using the class of the object currently being validated. You may use path alias to reference a class name here.
Deja para tener un atributo llamado common_attr en dos modelos:
class Model1 extends CActiveRecord{
public function rules(){
array('common_attr', 'unique', 'className'=> 'Model1'),
array('common_attr', 'unique', 'className'=> 'Model2'),
}
}
class Model2 extends CActiveRecord{
public function rules(){
array('common_attr', 'unique', 'className'=> 'Model1'),
array('common_attr', 'unique', 'className'=> 'Model2'),
}
}
y para comprobar combined key
validación desde múltiples tablas puede usar criterios propiedad de CUniqueValidator ..No hay necesidad de cualquier extensión
Documentación: criteria property public array $criteria; additional query criteria. This will be combined with the condition that checks if the attribute value exists in the corresponding table column. This array will be used to instantiate a CDbCriteria object.
class Model1 extends CActiveRecord{
public function rules(){
array('common_attr', 'unique', 'caseSensitive'=>false,
'criteria'=>array(
'join'=>'LEFT JOIN model2 ON model2.common_attr=model1.common_attr',
'condition'=>'model2.common_attr=model1.common_attr',
)),
}
}
- 1. Validación única cadena alfabético en Javascript
- 2. Combinación de dos columnas restricción única
- 3. DDD - Validación de la restricción única
- 4. Compuesto/clave primaria/única compuesta con Django
- 5. Algoritmo para la generación única de CD-KEY con validación
- 6. tabla fija única con columnas múltiples versus tablas abstractas flexibles
- 7. Rieles: campo de fuerza mayúscula y validación única
- 8. Cómo crear una restricción ÚNICA compuesta en FluentNHibernate?
- 9. ¿Qué significa el principio de responsabilidad única para la validación
- 10. SQL Server 2005 Restricción única en dos columnas
- 11. Restricción única en varias columnas
- 12. ¿podemos insertar en dos tablas con una única instrucción sql?
- 13. Postgres Restricción única en dos columnas: Entero y booleano
- 14. Restricción única sobre varias columnas
- 15. ¿Cómo hacer que una clave compuesta sea única?
- 16. Cómo crear una restricción única compuesta en SQL Server 2005
- 17. Restricción de la tabla de SQLite: única en varias columnas
- 18. Combinación única de frecuencias
- 19. dos asignaciones de lista única pitón comprensión
- 20. ¿Qué estoy haciendo mal en esta validación previa única de Mongoose?
- 21. validación de jQuery en diferentes idiomas
- 22. El enlace de opciones de selección única con la validación de jQuery no funciona
- 23. Validación entre múltiples campos en diferentes niveles
- 24. carriles 3: client_side_validations lanzan alerta sobre la ejecución de la validación única
- 25. Griales clase de dominio: restricción única para múltiples columnas
- 26. mysql clave única e índice
- 27. ¿La columna TimeStamp es única?
- 28. Buscar todas las columnas de una tabla usando una única condición where con palabra clave única en mysql
- 29. Regla de validación para un índice único compuesto (no primario)
- 30. Definir una clave principal única basada en 2 columnas
El primer método funciona como un encanto. Gracias :) – dInGd0nG