0
$user->transactions()->save($transaction);
dump($transaction->id); // id: 4
dd($user->transactions); // last id is 3
已儲存在$user->transactions
不出來的$transaction
。這是一個多態性的關係。
$user->transactions()->save($transaction);
dump($transaction->id); // id: 4
dd($user->transactions); // last id is 3
已儲存在$user->transactions
不出來的$transaction
。這是一個多態性的關係。
當您通過關係保存模型時,所有Laravel都會設置適當的外鍵。它不會將新保存的模型設置爲關係或將其添加到集合中。
如果您想要更新關係的模型使用fresh
函數。
$user->transactions()->save($transaction);
$user = $user->fresh('transactions');
編輯答案更新以下@ JCLee的校正分配的$user->fresh()
結果。
不適用於我。如果它有什麼不同,這是一種多態關係。 –
嗯。我之前沒有使用'fresh'來重新載入關係,但這是源代碼所建議的正確用法。 https://github.com/illuminate/database/blob/master/Eloquent/Model.php#L922 – fubar
我明白了爲什麼。 '$ user-> fresh('transactions');'返回刷新模型,但不刷新原始模型。所以'$ user = $ user-> fresh('transactions');'工作。 –