返回();不适用于 1 条路线,但适用于几乎相同的路线
我有 2 条路线,一条用于取消订阅,一条用于恢复,除非我遗漏了某些内容,否则两条路线除了名称/功能/网址之外都是相同的。当我取消恢复订阅时,我单击 /resume url,它执行该功能,然后返回,一切都如此之快,似乎从未离开过页面,然后它闪烁了成功消息。
我的 /cancel url 只是转到一个空白页面(我很确定这是正确的,因为如果它正常工作,你永远不会看到它)并且它执行取消功能,但永远不会返回。当我使用后退按钮手动返回时,它会闪烁成功消息。只是不明白为什么它不会像预期的那样自行返回。除此之外,如果您还需要任何其他信息,请告诉我。
工作:
1 2 3 4 5 6 7 | Route::get( '/resume' , function (Request $request ) {
$user = Auth::user();
$response = $user ->subscription()->resume();
toastr()->success( 'Your subscription has been successfully resumed.' , 'Success' , [ 'closeButton' => 'true' , 'positionClass' => 'toast-top-center' ]);
return back();
});
|
不工作:
1 2 3 4 5 6 7 | Route::get( '/cancel' , function (Request $request ) {
$user = Auth::user();
$response = $user ->subscription()->cancel();
toastr()->success( 'Your subscription has been successfully cancelled.' , 'Success' , [ 'closeButton' => 'true' , 'positionClass' => 'toast-top-center' ]);
return back();
});
|
我觉得这些没有必要,但为了以防万一,这是我的订阅控制器中的 2 个函数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | public function cancel(): self
{
$response = LemonSqueezy::api( 'DELETE' , "subscriptions/{$this->lemon_squeezy_id}" );
$this ->sync( $response [ 'data' ][ 'attributes' ]);
return $this ;
}
public function resume(): self
{
if ( $this ->expired()) {
throw new LogicException( 'Cannot resume an expired subscription.' );
}
$response = LemonSqueezy::api( 'PATCH' , "subscriptions/{$this->lemon_squeezy_id}" , [
'data' => [
'type' => 'subscriptions' ,
'id' => $this ->lemon_squeezy_id,
'attributes' => [
'cancelled' => false,
],
],
]);
$this ->sync( $response [ 'data' ][ 'attributes' ]);
return $this ;
}
|