CESAR W GRIMALDOS M Relacion de tablas

CESAR W GRIMALDOS M Publicada hace 4 meses | 1

Relacion de tablas

↑ Me gusta (0)

Tengo 3 tablas (countries, departments y cities tengo modelo Country, Department y City en Country digo que un pais tiene muchos departamentos en Departments digo que un departamento tienes muchos municipios/ciudades y en City digo que una ciudad pertenece a un deptartamento

se hace necesario decir que un departamento pertenece a un pais?

y si tengo un tabla asociados como relaciono esas tres tablas de manera que si escribo un campo con la direccion al seleccionar una ciudad me muestre tanto el departamento como el pais?

agradezco la colaboracion


  • Hola Cesar!

    En tu segunda pregunta encuentras la respuesta de la primera.

    En el modelo Department debes indicar que este pertenece a un Country para luego al seleccionar una ciudad esta encuentre que pertenece a un departamento y ese a un parís.

    class Country extends Model
    {
        public function departments()
        {
            return $this->hasMany(Department::class);
        }
    }
    
    class Department extends Model
    {
        public function cities()
        {
            return $this->hasMany(City::class);
        }
        
        public function country()
        {
            return $this->belongsTo(Country::class);
        }
    }
    
    class City extends Model
    {
        public function department()
        {
            return $this->belongsTo(Department::class);
        }
    }
    

    Además podrías indicar que un parís tiene muchas ciudades a través del modelo Department con hasManyThrough.

    class Country extends Model
    {
        public function departments()
        {
            return $this->hasMany(Department::class);
        }
        
        public function cities()
        {
            return $this->hasManyThrough(City::class, Department::class);
        }
    }    
    

    Y que una ciudad pertenece a un parís a través del modelo Deartment con belongsToThroug.

    class City extends Model
    {
        public function department()
        {
            return $this->belongsTo(Department::class);
        }
        
         public function country()
        {
            return $this->belongsToThrough(Country::class, Department::class);
        }
    }
    

    Luig Cumare Publicada hace 3 meses ↑ Me gusta (2)

Inicia sesión para responderle a CESAR W GRIMALDOS M