我正在使用Laravel(5.8),我需要从表A和表B中删除一条记录。所以我尝试了Observers,但它从来没有触发observer的deleted
方法。
我已经使用了其他方法,如updating
或updated
,所以我不知道为什么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 方法中,但也不起作用。
我看了官方文件,但找不到任何线索...我错过了什么?
1条答案
按热度按时间bihw5rsg1#
找到了
与其这么做
我应该这么做的。
我以为我已经试过了...总之,就这样。希望官方文件能提供更多细节。:)