Relaciones de tablas

Podemos definir claves ajenas a otras tablas en el XML de la tabla, con las etiquetas constraint. Sin embargo para usarlas en el modelo deberemos definir los métodos correspondientes, aunque nos podemos apoyar en los métodos belongsTo() y hasMany() para mayor comodidad.

belongsTo()

Este método devuelve un registro de la tabla relacionada, solamente hay que indicar el modelo a utilizar y la columna que se usa para la relación. Se entiende mejor con un ejemplo.

Obtener la familia de un producto

La familia del producto se guarda en el campo codfamilia, por lo que solamente tenemos que llamar a belongsTo() con el modelo Familia y el campo codfamilia:

public function familia(): ?Familia
{
    return $this->belongsTo(Familia::class, 'codfamilia');
}

hasMany()

Este método devuelve todos los registros relacionados, solamente hay que indicar el modelo a utilizar y la columna que se usa para la relación. Se entiende mejor con un ejemplo.

Obtener todas las variantes del producto

Las variantes se relacionan con el producto mediante su idproducto, por lo que solamente debemos llamar al método hasMany() indicando el modelo Variante y la columna idproducto.

public function getVariantes(): array
{
    return $this->hasMany(Variante::class, 'idproducto');
}
Cookies
Usamos cookies en nuestro sitio web para brindarte la experiencia más relevante recordando tus preferencias y visitas repetidas. Al hacer clic en "Aceptar", aceptas el uso de TODAS las cookies necesarias.
Copyright (c) 2013-2025 FacturaScripts
0.40258s

Soporte