Ich versuche, eine DB-Abfrage mit Laravel zu schreiben 5.3 des Has Many Through optionLaravel - hat viele Durch
sind meine DB-Tabellen gelegt wie folgt:
http://sqlfiddle.com/#!9/a9c9af
Die Tische sind:
Unternehmen company_offers bietet
In meinem Modell I h ave die folgende Einstellung:
public function offers()
{
return $this->hasManyThrough(
'App\Offers', 'App\CompanyOffers',
'company_offer_id', 'offer_id'
);
}
Wenn ich versuche, die folgende Codezeile auszuführen:
return $this->whereHas('offers', function($query) use ($offer_id)
{
return $query->whereIn('offer_id', $offer_id);
});
ich den Fehler:
Integrität Einschränkungsverletzung: 1052 Spalte 'OFFER_ID' in where Klausel ist mehrdeutig
Wie funktioniert Ich korrigiere das und finde die Beziehung richtig?
Ich brauche die Angebot Titel & Angebot Symbol für meine Frontend-Ansicht.
Hoffe das macht Sinn und jemand kann mir helfen.
Dank
Dank @ Jonathon Abfrage läuft jetzt, aber leere Daten zurück. (Obwohl es ein Ergebnis geben sollte) Hoffe, eine Ausgabe des SQL zu bekommen, um es von dort aus debuggen zu können. – StuBlackett
@StuBlackett Sie können [Abfrageereignisse abhören] (https://laravel.com/docs/5.3/database#listening-for-query-events). – Doom5
@StuBlackett Sie können auch eine Kombination aus '\ DB :: enableQueryLog()' verwenden, bevor Sie irgendwelche Abfragen ausführen und '\ DB :: getQueryLog()' danach, um zu sehen, was ausgeführt wurde :) – Jonathon