Heim  >  Fragen und Antworten  >  Hauptteil

return(); funktioniert nicht für eine Route, funktioniert aber für fast dieselbe Route

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;
    }

P粉098417223P粉098417223221 Tage vor417

Antworte allen(1)Ich werde antworten

  • P粉231112437

    P粉2311124372024-04-05 09:46:37

    通过对此线程的评论解决 https://laracasts.com/discuss/channels/laravel/redirect-with-not-working?page=1&replyId=337923

    我做了一个手动重定向,但也不起作用,所以我添加了 ->send();到最后,正如该线程所建议的那样,这解决了它。我没有用 return back(); 测试这个但它可能也适用。

    成功的代码如下

    return redirect()->to('/settings/subscription')->send();

    Antwort
    0
  • StornierenAntwort