我正在使用 Laravel (5.8),我需要从表 A 和表 B 中删除一条记录。 所以我尝试了观察者,但它从未触发观察者的
deleted
方法。
我已经使用了其他方法,例如
updating
或 updated
,所以我不知道为什么 deleted
方法没有触发。这是我的代码。
public function delete(Request $request, $idx){
$payData = PaymentData::where('idx', $idx)->delete();
return response()->json(['status' => true]);
}
public function deleted(PaymentData $paymentData)
{
if ($paymentData->pay_type == "PA") {
$app = AppData::where('oid', $paymentData->oid)->first();
if (!empty($app)) {
$app->delete();
}
}
}
public function boot()
{
\App\Models\PaymentData::observe(\App\Observers\PayObserver::class);
}
我也尝试在
EventServiceProvider.php
中的boot方法中添加observe语句,但也不起作用。找到了。
与其这样做,
$payData = PaymentData::where('idx', $idx)->delete();
我应该这样做。
$payData = PaymentData::where('idx', $idx)->first();
$payData->delete();
我以为我已经尝试过了...... 无论如何,就是这样。希望官方文档有更多细节。 :)