为了账号安全,请及时绑定邮箱和手机立即绑定

在Laravel中自动删除相关行(Eloquent ORM)

在Laravel中自动删除相关行(Eloquent ORM)

PHP
慕斯王 2019-08-26 15:36:54
在Laravel中自动删除相关行(Eloquent ORM)当我使用以下语法删除行时:$user->delete();有没有办法附加各种回调,所以它会自动执行此操作:$this->photo()->delete();最好在模型类内。
查看完整描述

3 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

注意:这个答案是为Laravel 3编写的。因此,在更新版本的Laravel中可能会或可能不会很好。

您可以在实际删除用户之前删除所有相关照片。

<?phpclass User extends Eloquent{

    public function photos()
    {
        return $this->has_many('Photo');
    }

    public function delete()
    {
        // delete all related photos 
        $this->photos()->delete();
        // as suggested by Dirk in comment,
        // it's an uglier alternative, but faster
        // Photo::where("user_id", $this->id)->delete()

        // delete the user
        return parent::delete();
    }}

希望能帮助到你。


查看完整回答
反对 回复 2019-08-26
  • 3 回答
  • 0 关注
  • 583 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信