Die Verwendung mehrerer where-Klauseln mit laravel Abfrage-generator

Im mit eine Menge ärger konvertieren Sie die folgende SQL-Abfrage für die Arbeit mit laravels Abfrage-generator.

SELECT * FROM gifts 
JOIN giftcategory ON gifts.id = giftcategory.giftid
JOIN giftoccasions ON gifts.id = giftoccasions.giftid
JOIN giftrelationship ON gifts.id = giftrelationship.giftid

WHERE (gifts.gender = 'any' OR gifts.gender = 'male')
AND giftoccasions.occasionid = '2'
AND (giftcategory.categoryid = '0' OR giftcategory.categoryid = '1')
AND giftrelationship.relationshipid = '1'

Diese Abfrage funktioniert Prima, aber ich kann nicht die gleichen Ergebnisse bei der Verwendung von Laravels Abfrage-generator. Ich habe den folgenden code so weit. Es funktioniert nicht bei allen. Ich denke das Problem liegen könnte mit der orWhere Teil, weil es scheint, werden Ergebnisse zurückgegeben, die nicht mit einem der anderen where-Klauseln.

$giftQuery = DB::Table('gifts')
->Join('giftcategory', 'gifts.id', '=', 'giftcategory.giftid')
->Join('giftoccasions', 'gifts.id', '=', 'giftoccasions.giftid')
->where('gifts.gender', '=', "male")
->orwhere('gifts.gender', '=', "any")
->where('giftoccasions.occasionid', '=', "2")
->where('giftoccasions.relationshipid', '=', "1")
->Where('giftcategory.categoryid', '=', "0")
->orWhere('giftcategory.categoryid', '=', "1");
  • wenn Sie zufrieden mit meiner Antwort weiter unten, können Sie es akzeptieren 🙂
InformationsquelleAutor Dan Hastings | 2015-03-30
Schreibe einen Kommentar