使用 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中文网其他相关文章!