【问题标题】:Laravel 5.1 Event deleting and delete not fireLaravel 5.1 事件删除和删除不触发
【发布时间】:2020-08-02 19:09:08
【问题描述】:

我使用 Laravel 5.1 并使用事件创建、更新、删除。创建和更新工作正常,但删除方法不会触发。我在 Model 中进行了测试,创建了一个 Observer 类并在没有任何解决方案的情况下放入 EventServiceProvider。

我的代码:

    public static function boot()
    {
        parent::boot();
        static::deleting(function($user)
        {
            if(count($user->getImages()) >0){
                return false;
            }else{
                return true;
            }
        });
    }

我的代码删除:

    User::where('id','=',$id)->delete();

有什么建议吗?提前谢谢大家

【问题讨论】:

  • 显示您尝试删除的代码
  • 代码是User::where('id','=',$id)->delete()

标签: php laravel


【解决方案1】:

尝试使用User::where('id','=',$id)->first()->delete(); 一定可以,我的项目中有同样的错误。

对于多行:

    User::where('id', $id)->get()->each(function($row){ 
        $row->delete();
    });

【讨论】:

  • 最好是User::find($id)->delete()
  • 又如何回信?如果返回消息不能返回 false...谢谢 Mike!
  • 嗨,迈克,多行?
【解决方案2】:

下一个选项如果你拍摄的事件被删除,删除

User::destroy(id);

User::destroy([id1, id2, id3]);

【讨论】:

  • User::destroy([id1, id2, id3]); 不起作用。在批量删除时,deleteddeleting 事件不会被触发。
猜你喜欢
  • 1970-01-01
  • 2016-01-02
  • 2015-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-22
相关资源
最近更新 更多