Ich habe zwei Routen, eine zum Abbestellen und eine zum Wiederherstellen. Beide Routen sind bis auf Name/Funktion/URL gleich, es sei denn, ich übersehe etwas. Wenn ich das Lebenslaufabonnement kündige, klicke ich auf die URL /resume, sie führt die Funktion aus und kehrt dann zurück, alles geht so schnell und scheint die Seite nie zu verlassen, dann blinkt die Erfolgsmeldung.
Meine /cancel-URL führt einfach zu einer leeren Seite (ich bin mir ziemlich sicher, dass das richtig ist, denn wenn sie richtig funktionieren würde, würde man sie nie sehen) und sie führt die Abbruchfunktion aus, kehrt aber nie zurück. Wenn ich manuell mit der Zurück-Taste zurückgehe, blinkt eine Erfolgsmeldung. Ich verstehe nur nicht, warum es nicht wie erwartet von selbst zurückkehrt. Wenn Sie darüber hinaus weitere Informationen ben?tigen, lassen Sie es mich bitte wissen.
Arbeit:
Route::get('/resume', function (Request $request) { // $user = User::find(1); $user = Auth::user(); $response = $user->subscription()->resume(); toastr()->success('Your subscription has been successfully resumed.', 'Success' , ['closeButton' => 'true','positionClass' => 'toast-top-center']); return back(); });
Funktioniert nicht:
Route::get('/cancel', function (Request $request) { // $user = User::find(1); $user = Auth::user(); $response = $user->subscription()->cancel(); toastr()->success('Your subscription has been successfully cancelled.', 'Success' , ['closeButton' => 'true','positionClass' => 'toast-top-center']); return back(); });
Ich glaube nicht, dass diese notwendig sind, aber nur für den Fall, hier sind die beiden Funktionen in meinem Abonnement-Controller.
public function cancel(): self { $response = LemonSqueezy::api('DELETE', "subscriptions/{$this->lemon_squeezy_id}"); $this->sync($response['data']['attributes']); return $this; } /** * Resume the subscription. */ 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; }
通過對此線程的評論解決 https://laracasts.com/discuss/channels/laravel/redirect-with-not-working?page=1&replyId=337923
我做了一個(gè)手動(dòng)重定向,但也不起作用,所以我添加了 ->send();到最后,正如該線程所建議的那樣,這解決了它。我沒有用 return back(); 測試這個(gè)但它可能也適用。
成功的代碼如下
return redirect()->to('/settings/subscription')->send();