假設我們有Class
和Student
模型與他們之間定義的多對多關係。如何檢查型號附件是否有變化?
我想執行一些操作,如果$students
,連接到$class
,更改。例如:
$class->attach($newSetOfStudents); // notify a teacher about the change behind the scenes
$class->save(); // by overriden save() or attach() methods
這是如何實現的?在覆蓋save()
方法時,我嘗試使用..->isDirty()
,但它似乎不適用於所連接的模型。
更新
檢查..->isDirty()
樞軸似乎並沒有工作,要麼:通過延長Ardent
// ..
foreach($class->students as $student){
if($student->pivot->isDirty()) return true;
}
// ..
在你的Class模型(比如說saveNewSetOfStudents)上有一個方法來封裝attach和save方法,並且添加你需要的任何其他邏輯。 – Mei
那麼,它會工作,但它可能會導致未來的錯誤。例如,如果另一個開發人員,甚至是我忘記了附件只需要通過該方法發生,並使用常規的'attach()'。所以說這種方法並不是那麼「乾淨」。 –