使用 Eloquent ORM 在 Laravel 實現自動刪除相關行
Eloquent ORM 的標準 delete() 方法刪除單行。若要擴充此功能並自動刪除相關行,請利用 Eloquent 事件。
問題:
當您使用 $user->delete()刪除一行時,如何附加用於刪除相關行的自動回調,例如$this->photo()->delete()?
解:
刪除事件在delete(之前觸發) ) 方法被呼叫。透過在模型類別中定義事件處理程序,您可以在刪除時執行清理任務。
<?php namespace App\Models; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { public function photos() { return $this->has_many('Photo'); } // This method is called before delete() is called protected static function booted () { static::deleting(function (User $user) { $user->photos()->delete(); }); } }
附加說明:
以上是Laravel Eloquent 刪除模型時如何自動刪除相關行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!