return(); tidak berfungsi untuk 1 laluan tetapi berfungsi untuk laluan yang hampir sama
P粉098417223
P粉098417223 2024-04-04 17:34:09
0
1
413

Saya mempunyai 2 laluan, satu untuk berhenti melanggan dan satu untuk memulihkan, kedua-dua laluan adalah sama kecuali nama/fungsi/url melainkan saya tertinggal sesuatu. Apabila saya membatalkan langganan resume, saya mengklik url /resume, ia menjalankan fungsi dan kemudian kembali, semuanya begitu pantas dan seolah-olah tidak pernah meninggalkan halaman, kemudian ia memancarkan mesej kejayaan.

Url /cancel saya hanya pergi ke halaman kosong (saya agak pasti ini betul kerana jika ia berfungsi dengan betul anda tidak akan melihatnya) dan ia menjalankan fungsi batal tetapi tidak kembali. Apabila saya kembali secara manual menggunakan butang belakang ia memancarkan mesej kejayaan. Cuma tidak faham mengapa ia tidak kembali sendiri seperti yang diharapkan. Selain itu, jika anda memerlukan sebarang maklumat lain, sila beritahu saya.

Kerja:

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

Tidak berfungsi:

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

Saya rasa ini tidak perlu, tetapi untuk berjaga-jaga, berikut ialah 2 fungsi dalam pengawal langganan saya.

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

membalas semua(1)
P粉231112437

Diselesaikan dengan mengulas pada urutan ini https://laracasts.com/discuss/channels/laravel/redirect-with-not-working?page=1&replyId=337923

Saya melakukan ubah hala manual tetapi itu juga tidak berfungsi jadi saya menambah ->send() seperti yang dicadangkan oleh thread ini dan itu menyelesaikannya. Saya tidak menguji ini dengan return back();

Kod yang berjaya adalah seperti berikut

return redirect()->to('/settings/subscription')->send();
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!