2016-05-12 7 views
1

Ich habe zwei Tabellen
1.Join 2 Tabellen in Eloquent Laravel 5.2 - Wie alle Daten aus beiden Tabellen abgerufen werden?

Game Console 
     -- console_id 
     -- console_name 

2.

Game Labels 
    -- game_label_id 
    -- console_id (foreign key) 
    -- title 
    -- description 
    -- image 
    -- created 

GameConsole Modell

namespace App\Http\Models; 

use Illuminate\Database\Eloquent\Model; 

class GameConsole extends Model 
{ 
    /** 
    * The attributes that are mass assignable. 
    * 
    * @var array 
    */ 
    public $timestamps = false; 
    protected $table = 'console'; 
    protected $fillable = array('console_name', 'description', 'created'); 
    protected $primaryKey = 'console_id'; 

    public function labels() 
    { 
     return $this->hasMany('App\Http\Models\GameLabel','console_id'); 
    } 

} 

GameLabel Modell

namespace App\Http\Models; 

use Illuminate\Database\Eloquent\Model; 

class GameLabel extends Model 
{ 
    /** 
    * The attributes that are mass assignable. 
    * 
    * @var array 
    */ 
    public $timestamps = false; 
    protected $table = 'game_label'; 
    protected $fillable = array('game_label_id','console_id', 'title','description','image', 'release_date','status','created'); 
    protected $primaryKey = 'game_label_id'; 

    public function console() 
    { 
     return $this->belongsTo('App\Http\Models\GameConsole','console_id'); 
    } 
} 

Ich schreibe diese Abfrage alle Spiel Etiketten mit console_name

GameLabel::with('console')->get(); 

Aber ich nur aus game_label Tisch zu bekommen Aufzeichnungen bin zu bekommen, nicht von Konsolentisch.

Kann mir irgendein Körper bitte sagen, dass welche Abfrage ich schreiben muss, um alle Datensätze zu bekommen? Bitte schlage mich nicht über Query Builder Joins vor. Ich möchte das nicht benutzen.

+0

Sie tun können, wie: '$ gameLabel = GameLabel :: mit ('Konsole') -> get(); 'then' $ gameConsoles = $ gameLabel-> console; ' –

Antwort

0

Ja, es ist unter der Konsole Schlüssel. Ich habe die Lösung gefunden. der Konsole Name wurde nicht in der Ansicht immer so bekommen die Konsole Namen in Sicht wie folgt

foreach($game_label as $getGameLabel){ 
    echo $getGameLabel->console->console_name; 
} 

1
 namespace App\Http\Models; 

     use Illuminate\Database\Eloquent\Model; 

     class GameLabel extends Model 
     { 
      /** 
      * The attributes that are mass assignable. 
      * 
      * @var array 
      */ 
      public $timestamps = false; 
      protected $table = 'game_label'; 
      protected $fillable = array('game_label_id','console_id', 'title','description','image', 'release_date','status','created'); 
      protected $primaryKey = 'game_label_id'; 

      public function console() 
      { 
       return $this->belongsTo('App\Http\Models\GameConsole', 'console_id', 'console_id'); 
      } 
} 

in gehört zunächst zu console_id Spielkonsole Tisch ID darstellen und und zweiten console_id repräsentieren console_id game_label Tabelle

jetzt in der Steuerung

GameLabel::with('console')->get(); 

Ich denke, alle Daten auf der Konsole in Array availbale seine Schlüssel

+0

Ja, es befindet sich unter der Konsolen-Taste. Ich habe die Lösung gefunden. –

Verwandte Themen