Frage

Ich habe eine Laravel 4-Anwendung und in dieser Anwendung muss ich zweimal ein Modell in Bezug auf ein anderes Modell definieren, jedoch mit Unterscheidung nach Typ.

Beispiel

class Car extends Eloquent{

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

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

}

also wird die Beziehung die sein car Id am driverWenn ich in der Tabelle die alten Treiber nur für ein bestimmtes Auto abrufen möchte, werden alle Treiber aus beiden Beziehungen zurückgegeben.

Als ich es mir ansah, stellte ich fest, dass es sich um dieselbe Tabelle handelt, also habe ich jetzt einen Typ in festgelegt Driver Modell, jetzt möchte ich, dass meine Beziehung nach diesem Typ gefiltert wird, sodass die oldDrivers nur Treiber mit dem Typ oldDrivers und die neuen Treiber nur Treiber mit dem Typ newDriver sind.

Wie kann das in Laravel gemacht werden?

War es hilfreich?

Lösung

Sie können so etwas versuchen:

class Car extends Eloquent{

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

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

 }

Vorausgesetzt, dass Sie das getan haben type Feld als Filter in Ihrer Datenbank.Falls ich mich irre type Feld, dann ändern Sie einfach das field Benennen Sie den richtigen Namen, weil Sie auf die Idee gekommen sind, wie Sie mit a einen Filter hinzufügen können where Klausel.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top