2017-06-13 9 views
1

でデータをピボット:アイテムの関係は、hasManyの(バリュー::クラス)であると値の関係はbelongsToの(項目::クラス)であるLaravelは、私は以下の2つの表持つビュー

Items 
    id 
    name 

Values 
    id 
    item_id 
    value_date 
    value 

を。私は、ビューにこのようなデータを表示したい:

-------------------------------------------------------------------- 
      | Item Name 1 | Item Name 2 | Item Name 3 | Item Name 3 | 
-------------------------------------------------------------------- 
01/01/2017 | Value  | Value  | Value  | Value  | 
-------------------------------------------------------------------- 
01/02/2017 | Value  | Value  | Value  | Value  | 
-------------------------------------------------------------------- 
01/03/2017 | Value  | Value  | Value  | Value  | 
-------------------------------------------------------------------- 
01/04/2017 | Value  | Value  | Value  | Value  | 
-------------------------------------------------------------------- 
01/05/2017 | Value  | Value  | Value  | Value  | 
-------------------------------------------------------------------- 

私はこれを達成するために、次のピボットテーブルを追加する必要があると思う:

Dates 
    id 
    date 
    item_id 
    value_id 

しかし、私の質問は私が得ることについて行く方法ですヘッダー行を作成する項目名私はこれを複雑にしていますか?

答えて

0

多対多リレーションシップがある場合は、ピボットテーブルが必要です(ここでは該当しません)。

あなたはeager loadingを使用することができます。

// Get ALL the Items, with their Values, ordered by Values.date 
$items = Items::with(['values' => function ($query) { 
    $query->orderBy('date', 'asc'); 
}])->get(); 

foreach ($items as $item) { 

    // Item data 
    var_dump($item->id); 
    var_dump($item->name); 

    // Values data (per Item) 
    foreach ($item->values as $value) { 

     var_dump($value->value); 
     var_dump($value->date); 

    } 
} 

その後、それはあなたのビューでそれを配置するだけです。

+0

ありがとうございました。それは私のそこの方法のほとんどを得た。それは適切に配置することにまだ取り組んでいます。 – Chris

関連する問題