代码之家  ›  专栏  ›  技术社区  ›  Philipp Mochine

如何删除Laravel中可能为空的关系?

  •  0
  • Philipp Mochine  · 技术社区  · 6 年前

    当用户决定停用其帐户时,我也会删除属于该用户的所有其他表。

    应用内\用户:

    protected static function boot()
    {
        parent::boot();
    
        static::deleting(function ($user) {
            $user->privacy->delete();
            $user->info->delete();
    
            $user->comments->each->delete();
    
            //If connected
            $user->instagram->delete(); //my Problem
        });
    }
    
    public function instagram(){
        return $this->hasOne(SocialInstagramAccount::class);
    }
    

    如果模型可以为null,那么有没有一种好方法可以使用现有关系删除该模型?

    通过上面的代码,当用户没有使用Instagram登录时,我得到了:“调用成员函数delete()on null”。明显为空->delete()不起作用。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Jonas Staudenmeir    6 年前

    使用此选项:

    $user->instagram()->delete();
    $user->comments()->delete();