php Laravel(5.8)观察者删除无法工作

ki0zmccv  于 2023-10-15  发布在  PHP
关注(0)|答案(1)|浏览(109)

我正在使用Laravel(5.8),我需要从表A和表B中删除一条记录。所以我尝试了Observers,但它从来没有触发observer的deleted方法。
我已经使用了其他方法,如updatingupdated,所以我不知道为什么deleted方法没有被触发。
我不使用软删除,因为我没有建立这个数据库模式,我没有权限修改它。但根据我从文件中读到的,这并不重要,对吗?
这是我的代码。

  • PayController.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);
}

我还尝试将observe语句添加到EventServiceProvider.php中的 Boot 方法中,但也不起作用。
我看了官方文件,但找不到任何线索...我错过了什么?

bihw5rsg

bihw5rsg1#

找到了
与其这么做

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

我应该这么做的。

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

我以为我已经试过了...总之,就这样。希望官方文件能提供更多细节。:)

相关问题