Question

J'ai une application Laravel 4 et dans cette application je dois définir un modèle par rapport à un autre modèle 2 fois mais avec discrimination par type.

Exemple

class Car extends Eloquent{

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

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

}

donc la relation sera la car Identifiant au driverDans la table, le problème est que lorsque je veux obtenir les anciens conducteurs uniquement pour une certaine voiture, cela renvoie tous les conducteurs des deux relations.

En l'examinant, j'ai trouvé parce que c'est la même table, alors maintenant j'ai défini un type dans le Driver modèle, maintenant je veux que ma relation soit filtrée par ce type, donc les oldDrivers seront uniquement des pilotes avec le type oldDrivers et les nouveaux pilotes seront les pilotes avec uniquement le type newDriver défini,

Comment cela peut-il être fait dans Laravel ?

Était-ce utile?

La solution

Vous pouvez essayer quelque chose comme ceci :

class Car extends Eloquent{

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

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

 }

Supposé que vous avez type champ comme filtre dans votre base de données.Si je me trompe type champ alors vous changez simplement le field nom au bon parce que vous avez eu l'idée de savoir comment ajouter un filtre à l'aide d'un where clause.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top