Discusión:Asociaciones
Creo que estos ejemplos estarán claros para quien tenga facilidad de uso de las asociaciones, pero si alguien como yo, que es la primera vez que veo este tipo de funciones, el que indiquéis en nombre de los campos en el ejemplo y después pongáis parte del ejemplo de la clase con otro nombre de tabla o model, no hace más que liar.
Ejemplo de incongruencia de información:
Tiene un (has_one)[editar]
Este tipo de relación se efectúa con el método “has_one”, en esta la llave foránea se encuentra en la tabla del modelo con el que se quiere asociar. Corresponde a una relación uno a uno en el modelo entidad relación.
has_one($relation)
$relation (string): nombre de la relación.
Parámetros con nombre: model: Nombre del tipo de modelo que debe retornar la consulta de la relación. Por defecto se considera un modelo que corresponda al nombre de la relación. Ejemplo: Si $relation='auto_volador', entonces model=AutoVolador
fk: nombre de la llave foránea mediante la cual se relaciona. Por defecto se considera el nombre de la relación con el sufijo “_id”. Ejemplo: Si $relation='auto_volador', entonces fk=auto_volador_id.
Ejemplos de uso: $this->has_one('persona'); $this->has_one('vendedor', 'model: Persona'); $this->has_one('funcionario', 'model: Persona', 'fk: personal_id');
En el modelo Persona:
class Persona extends ActiveRecord {
public function initialize() {
$this->has_one('datos_personales');
}
}
DONDE ESTA LA RELACIÓN ENTRE EL EJEMPLO QUE YA SE HA VISTO ARRIBA Y LA DEFINICIÓN DE CLASS? QUE TIENE QUE VER ESTO:
$this->has_one('persona'); $this->has_one('vendedor', 'model: Persona') $this->has_one('funcionario', 'model: Persona', 'fk: personal_id')
CON ESTO?
En el modelo Persona: class Persona extends ActiveRecord { public function initialize() { $this->has_one('datos_personales'); } }
No se entiende y menos los dos siguientes ejemplos de has_many y has_and_belongs_to_many
Yo puedo aportar si entiendo que se esta explicando. Saludos.