return(); funktioniert nicht für eine Route, funktioniert aber für fast dieselbe Route
P粉098417223
P粉098417223 2024-04-04 17:34:09
0
1
469

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粉098417223
P粉098417223

Antworte allen(1)
P粉231112437

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

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

成功的代码如下

return redirect()->to('/settings/subscription')->send();
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage