Pregunta

Tengo una aplicación laravel 4 y en esta aplicación necesito definir un modelo con relación a otro modelo 2 veces pero con discriminación de tipo.

Ejemplo

class Car extends Eloquent{

     public function oldDrivers(){
        return $this->hasMany('Driver');
     }

     public function newDrivers(){
        return $this->hasMany('Driver');
     }

}

entonces la relación será la car Identificación en el driverEn la tabla, la cuestión es que cuando quiero obtener los controladores antiguos solo para un determinado automóvil, devuelve todos los controladores de ambas relaciones.

Al investigarlo encontré que es la misma tabla, así que ahora configuré un tipo en el Driver modelo, ahora quiero que mi relación se filtre por este tipo, por lo que los controladores antiguos serán solo controladores con el tipo de controladores antiguos y los controladores nuevos serán los controladores con solo el tipo de controlador nuevo establecido,

¿Cómo se puede hacer esto en Laravel?

¿Fue útil?

Solución

Puedes intentar algo como esto:

class Car extends Eloquent{

     public function oldDrivers(){
        return $this->hasMany('Driver')->where('type', 'olddrivers');
     }

     public function newDrivers(){
        return $this->hasMany('Driver')->where('type', 'newdrivers');
     }

 }

Se supone que tienes type campo como filtro en su base de datos.Si me equivoco type campo entonces simplemente cambia el field nombre al correcto porque se te ocurrió la idea de cómo puedes agregar un filtro usando un where cláusula.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top