我在Laravel建立以下關係式:Laravel保存一對多的關係
OrderStatus Model
- hasMany('Order')
Order Model
- 'belongsTo('OrderStatus');
將數據庫設置了一個orders
表和order_statuses
表。 orders
表格有一個order_status_id
的字段。
當我保存一個訂單,我通過手動獲取相應的訂單狀態的模式,這樣設置order_status_id
:
$status = OrderStatus::where(['name'=>'sample_status'])->firstOrFail();
$order->order_status_id = $status->id;
$order->save();
我想知道是否有一個內置的功能,要做到這一點,而不是設置order_status_id
手動。我已閱讀Laravel文檔中的「附加相關模型」和「關聯模型」,但我無法弄清楚這些是否適合我的用例。我認爲我遇到的問題是我直接使用子模型(訂單),並試圖設置它的父項。有這個功能嗎?
哦,哇,它看起來像工作。我的問題是我沒有在'associate()'後面調用'save()'。所以'associate()'只需更新'$ order'上'order_status_id'字段的值,但實際上並不觸及數據庫? – flyingL123
的確如此:) – lukasgeiter