在 Laravel 的 Eloquent ORM 中,当使用 $user->delete(); 删除记录时,你可以想要自动删除相关行,例如$this->照片()->删除()。这可以通过利用模型类中的删除事件来实现。
要设置事件处理程序,请按照以下步骤操作:
namespace App\Models; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { public function photos() { return $this->has_many('Photo'); } // this is a recommended way to declare event handlers protected static function booted() { static::deleting(function(User $user) { // before delete() method calls this $user->photos()->delete(); // perform additional cleanup if necessary }); } }
通过定义删除事件处理程序,每次删除 User 模型时,相关的 Photo 模型也会自动删除。为了确保引用完整性,建议将删除过程包装在事务中。
以上是Laravel Eloquent 删除模型时如何自动删除相关行?的详细内容。更多信息请关注PHP中文网其他相关文章!