2016-07-18 12 views
0

私はLaravel 5.2の初心者です。レガシーシステムで作業していて、雄弁に混乱していて、誰かに私にコードを渡していただければ幸いです。Laravel Eloquent Relationship 3テーブル

3つのテーブルがあります。

カード カテゴリ cards2cat

カードがcards2catテーブルに保存されている一部多くのカテゴリすることができます。

cards2catテーブルには、次のような構造を持っている私が何をしたいのか

ID(主キー) 画像(カード) カテゴリ

は、カードのモデルにメソッドを持つことであるgetCardsWithCategoresのようなものをと呼ばれますカードの情報とカテゴリテーブルのカテゴリの名前が返されました。

カテゴリテーブルには、idとフィールドカテゴリのキーがあります。

ありがとうございます!あなたのCard2Catsモデルへ

+0

3つのテーブルの移行を提供できますか? – theMohammedA

+0

これはレガシーシステムなので、私は移行を使用しませんでした。主なポイントは、idはインデックス、categoryはidとcategory、card2catはidのインデックスであり、他の2つのフィールド(両方の整数)の画像(カードのID)とcategoryAはこれまでのレガシーシステム – Jim

答えて

1

移動し、この追加:あなたのクラスとテーブルのカラム名のスペルを実行する前に、正しいことを確認してください

$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 
} 

:あなたがこれを行うクエリの場合

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

} 

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

をコード:D