2016-04-06 8 views
0

Я работаю через видео Laracasts о загрузке эгара и до сих пор так хорошо!Как я могу получить привязанные значения таблицы от активной загрузки?

Я думал, что хорошо разбираюсь в концепциях, но теперь я повесил трубку с тем, как я это делал (CodeIgniter) против этого довольно удивительного пути.

У меня есть 3 таблицы:

cards  #card_id, title, created_at, updated_at 
notes  #note_id, name, created_at, updated_at 
card_notes #card_id, note_id 

В card_notes есть FK поля:

card_id #FK back to cards->card_id 
note_id #FK back to notes->note_id 

Я могу получить все ноты для данной карты:

CardsController.php

public function show(Card $card) 
{ 
    $card->load('notes'); 
} 

Card.php

public function notes() 
{ 
    return $this->hasMany(CardNote::class); 
} 

JSON
{ 
    id: 1, 
    title: "First Card", 
    created_at: null, 
    updated_at: null, 
    notes: [ 
     { 
      card_id: 1, 
      note_id: 1, 
      created_at: null, 
      updated_at: null 
     }, 
     { 
      card_id: 1, 
      note_id: 2, 
      created_at: null, 
      updated_at: null 
     } 
    ]    
} 

До сих пор, так хорошо! Теперь, в моей таблице notes, у меня есть столбец name, который я хочу показать. Вот где я застрял. Я могу добраться до моей таблицы поиска, но я не понял, как получить за этой таблицей и в объединенную таблицу. Похоже, мне нужен hasManyThrough, но ... Я падаю на лицо.

return $this->hasManyThrough(Note::class, CardNote::class); 

Мне нужно получить все записи нот для данного note_id, но я не знаю, как перейти в следующий уровень. Это то, что я пытаюсь создать в конце концов:

JSON
{ 
    id: 1, 
    title: "First Card", 
    created_at: null, 
    updated_at: null, 
    notes: [ 
     { 
      card_id: 1, 
      note_id: 1, 
      name: "John Doe" 
      created_at: null, 
      updated_at: null 
     }, 
     { 
      card_id: 1, 
      note_id: 2, 
      name: "Jane Doe" 
      created_at: null, 
      updated_at: null 
     } 
    ]    
} 

Спасибо за любые предложения!

ответ

0

Оказывается, это помогает, если вы продолжаете прокрутку. Я знал, что был близок с hasManyThrough, я просто пропустил необязательные параметры.

return $this->hasManyThrough(Note::class, CardNote::class, 'card_id', 'note_id');