2014-11-16 126 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::with(array('connections', 'connections.connectionSteps'))->find(1); 

HEPE它可以幫助:

您可以通過使用迫切負荷將同時加載多個關係實現這一目標!

0

正確方法:

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

對於急切的加載:

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