2014-11-16 3 views
0

Что может быть не так с моей модели:Laravel Модель отношений

соединения таблицы:

id, parent_sid, connection_id (nullable)

соединения Шаг

id, sid, date_started, date_ended, connection_id

Шаг

id, name, url

, но когда я бегу:

Step::find(1)->connections()->connectionSteps(); 

Я всегда получаю эту ошибку:

exception 'BadMethodCallException' with message 'Call to undefined method Illuminate\Database\Query\Builder::connectionSteps()'

ответ

1

Чтобы получить модель с данными отношений вы можете сделать в этом случае:

$step = Step:with('connections.connectionSteps')->find(1); 

Теперь вы можете отобразить данные таким образом:

echo $step->name; 

foreach ($step->connections as $con) { 
    foreach ($con->connectionSteps as $step) { 
    echo $step->date_started; 
    } 
} 
+0

спасибо! хотя все остальные имеют одинаковый ответ. Спасибо, парни! – gwinh

0

В примере Шаг :: найти (1) -> соединения() -> connectionSteps(), вас стремятся получить доступ к соединению. Шаги Step, которые не определены. Вот почему вы получаете «Вызов неопределенного метода», так как это отношение «Связи».

Вы можете achive это с помощью нетерпеливый нагрузки, которая будет загружать несколько отношений в одно время:

Step::with(array('connections', 'connections.connectionSteps'))->find(1); 

Hepe это помогает!

0

Правильный путь:

Step::find(1)->connections->connectionSteps; 

Для полной загрузки:

Step::with('connections.connectionSteps')->find(1)->connections->connectionSteps; 
Смежные вопросы