2013-09-20 37 views
2

我正在通過理解laravel中的關係。我在兩張桌子之間建立了關係:預訂和收據。收據屬於預訂並且預訂有許多收據。 我很滿意基本用法,可以將收據與預訂相關聯。 但是我無法解決如何執行更新過程。 從表單我有一個購物車類型的應用程序與購物車存儲收據來處理預訂購物車包括現有的收據,用戶添加的新收據和用戶可能已經刪除了收據。 有幾件事我不確定:laravel更新,刪除一對多關係雄辯

如果我只是想從預訂記錄更新收據的詳細信息,我該怎麼做?

我曾嘗試:

$reservation->invoice->update(); 

和:

$reservation->invoice->save(); 

更新屬性之後,但這些方法想出了一個錯誤:沒有找到方法。我是否假設我應該單獨從關係中找到記錄並正常更新?

然後其他相關的問題是邏輯之一。我的購物車將收集收據,用於根據收據表發佈或更新。我可以檢索收據集合進行比較。

這樣做的最好方法是什麼?迭代購物車集合或迭代收據集合。我可以輕鬆識別用戶想要刪除的收據嗎?基於兩個購物車之間的信息?

是否有一個php方法來比較兩個集合(我可以轉換爲數組)並獲取要刪除的記錄的id。

我轉圈圈這裏

任何意見讚賞

回答

1

有很多你在一個問題,最多集資的問題......但我建議你看那個是越來越回來對象從$ reservation->發票。您建議預訂和發票是兩個獨立的但是一對多的相關實體,因此當您撥打$reservation->invoices時,Laravel通過返回一組發票模型來幫助您,因此您可以遍歷它們並進行更新。另外你也可能想看看你可以如何利用關係法($reservation->invoices()

您的其他問題... PHP Documentation is your friend見:和array_diff和array_intersect型功能