2016-07-18 5 views
0

Ich bin ein Neuling zu Laravel 5.2 und arbeite an einem Legacy-System und bin ein wenig verwirrt in Bezug auf eloquent und würde mich freuen, jemand gibt mir den Code.Laravel Eloquent Beziehung 3 Tabellen

Es gibt 3 Tabellen:

Karten Kategorien cards2cat

Karten können an vielen Kategorien sein, die in cards2cat Tisch gehalten werden.

Die cards2cat Tabelle hat die folgende Struktur

id (Primärschlüssel) Bild (Karte) Kategorie

Was ich tun möchte, ist ein Verfahren, bei dem Karten-Modell etwas wie getCardsWithCategores genannt zu haben, die gab die Karteninformationen plus die Namen der Kategorien aus der Kategorietabelle zurück.

Die Kategorien Tabelle hat einen Schlüssel der ID und eine Feldkategorie.

Danke!

+0

Können Sie die Migrationen für die 3 Tabellen bereitstellen? – theMohammedA

+0

Da dies ein Altsystem ist, habe ich keine Migrationen verwendet. Die wichtigsten Punkte sind Karten ist Index auf ID, Kategorien enthält ID und Kategorie, und Card2cat ist Index auf ID mit 2 anderen Feldern (beide Integer) Bild (das ist die ID der Karte) und categoryAs dies ist ein Legacy-System, das ich nicht – Jim

Antwort

1

zu Ihrem Card2Cats Modell gehen und hinzufügen:

public function categories() 
{ 
    return $this->hasOne('App\Categories','id','category'); 

} 

public function cards() 
{ 
    return $this->hasOne('App\Cards','id','image'); 
} 

Für die Abfrage, die Sie dies tun:

$cards = Card2Cat::with('categories','cards')->get(); 
foreach ($cards as $key => $value) { 
    echo $value->id.', Card:'.$value->cards->name.', Category:'.$value->categories->category.'<br>'; 

//$value->cards gives you all column of cards and you can do 
//$value->cards->colName 
// same goes for $value->categories 
} 

Machen Sie die Rechtschreibung Ihrer Klassen und Tabellenspaltennamen sicher, korrekt ist, bevor der Lauf code: D