recherche

Maison  >  Questions et réponses  >  le corps du texte

return(); ne fonctionne pas pour 1 itinéraire mais fonctionne pour presque le même itinéraire

J'ai 2 routes, une pour la désinscription et une pour la restauration, les deux routes sont les mêmes sauf le nom/fonction/url sauf si quelque chose me manque. Lorsque j'annule l'abonnement de reprise, je clique sur l'url /resume, il exécute la fonction puis revient, tout est si rapide et ne semble jamais quitter la page, puis il fait clignoter le message de réussite.

Mon URL /cancel va simplement vers une page vierge (je suis presque sûr que c'est correct car si elle fonctionnait correctement, vous ne la verriez jamais) et elle exécute la fonction d'annulation mais ne revient jamais. Lorsque je reviens manuellement en utilisant le bouton de retour, un message de réussite clignote. Je ne comprends tout simplement pas pourquoi il ne revient pas tout seul comme prévu. En dehors de cela, si vous avez besoin d’autres informations, n’hésitez pas à me le faire savoir.

Travail :

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

Ne fonctionne pas :

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

Je ne pense pas que cela soit nécessaire, mais au cas où, voici les 2 fonctions de mon contrôleur d'abonnement.

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粉098417223284 Il y a quelques jours509

répondre à tous(1)je répondrai

  • P粉231112437

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

    Résolu en commentant ce fil https://laracasts.com/discuss/channels/laravel/redirect-with-not-working?page=1&replyId=337923

    J'ai fait une redirection manuelle mais cela n'a pas fonctionné non plus, alors j'ai ajouté ->send(); à la fin comme le suggérait ce fil et cela a résolu le problème. Je n'ai pas testé cela avec return back(); mais cela pourrait aussi fonctionner.

    Le code réussi est le suivant

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

    répondre
    0
  • Annulerrépondre