Laravel (5.8) 观察者删除不起作用

问题描述 投票:0回答:1

我正在使用 Laravel (5.8),我需要从表 A 和表 B 中删除一条记录。 所以我尝试了观察者,但它从未触发观察者的

deleted
方法。

我已经使用了其他方法,例如

updating
updated
,所以我不知道为什么
deleted
方法没有触发。
我不使用软删除,因为我没有创建此数据库架构,并且我无权修改它。但根据我从文档中读到的内容,这并不重要......对吗?

这是我的代码。

  • 支付控制器.php
public function delete(Request $request, $idx){
    $payData = PaymentData::where('idx', $idx)->delete();
    return response()->json(['status' => true]);
}
  • PayObserver.php
public function deleted(PaymentData $paymentData)
{
        if ($paymentData->pay_type == "PA") {
            $app = AppData::where('oid', $paymentData->oid)->first();

            if (!empty($app)) {
                $app->delete();
            }
        }
}
  • AppServiceProvider.php
public function boot()
{
    \App\Models\PaymentData::observe(\App\Observers\PayObserver::class);
}

我也尝试在

EventServiceProvider.php
中的boot方法中添加observe语句,但也不起作用。
我阅读了官方文档但找不到任何线索..我错过了什么?

php laravel-5 observers
1个回答
0
投票

找到了。

与其这样做,

$payData = PaymentData::where('idx', $idx)->delete();

我应该这样做。

$payData = PaymentData::where('idx', $idx)->first();
$payData->delete();

我以为我已经尝试过了...... 无论如何,就是这样。希望官方文档有更多细节。 :)

© www.soinside.com 2019 - 2024. All rights reserved.