2016-04-01 5 views
0

Ich habe ein Problem. Ich habe zwei Tabellen, Orte und Küchen, und cuest_place und in dieser Tabelle habe ich eine Spalte namens default (das zeigt, ob diese Küche die Standardküche für diesen Ort ist). Aber ich habe das Problem, dass ich nicht auf diese Spalte zugreifen kann.Wie man Wert von der Spalte erhält, die in einer N-N Beziehungstabelle in Laravel ist

Wie kann ich tun?

Was ich tun möchte, ist sie in dieser Antwort haben:

$places = Place::all()->with('cuisines')->withPivot('default'); 

So ähnlich.

Dank

Antwort

0

Sie haben eine viele zu viele Beziehung zwischen Plätze und küchen. Diese Beziehung würde in Ihren Modellen in der folgenden Art und Weise definiert werden:

public function cuisines(){ 

    return $this->belongsToMany('Cuisine', 'cuisine_place'); 

} 

Die oben wäre eine Funktion in Ihrem Platz Klasse, die ihre Beziehung zu den Küchen verweist Tisch. Standardmäßig nimmt Eloquent die Fremdschlüssel in der Tabelle cuisine_place auf (in Ihrem Fall würden sie wahrscheinlich cuisine_id und place_id heißen). Wenn Sie aus dieser Tabelle zusätzliche Spalten abholen wollen auf Anrufe auf die obige Beziehung Funktion können Sie die withPivot Funktion:

public function cuisines(){ 

    return $this->belongsToMany('Cuisine', 'cuisine_place')->withPivot('default'); 

} 

nun auf Aufrufe an die cuisines() Methode in Ihrer Platz Klasse, Sie‘ Ich erhalte die Standard Spalte in dem Objekt, das dieser Tabelle zugeordnet ist.

+0

Ich aktualisiere die Frage, schau, ob u unterant was ich meine, ich weiß nicht, ob es möglich ist – user2540080

+0

@ user2540080 Sie rufen 'withPivot()' nicht in Ihrem Controller, rufen Sie es in Ihrem Modell. Alles was du in deinem Controller brauchst, ist 'Place :: all() -> with ('cuisines');' –

0

öffnen Dokumentation für Laravel Eloquent Relationships

Und über Apportieren Intermediate Tabellenspalten lesen

Sie bieten nicht Ihre Modelle Code, so dass es schwierig ist, Sie mit der genauen Lösung zu helfen

Verwandte Themen