【问题标题】:Laravel - Cashier | swap() and cancelNow() on nullLaravel - 收银员 |在 null 上交换()和 cancelNow()
【发布时间】:2017-05-16 15:09:21
【问题描述】:

基本上我有这个问题不断发生。

用户订阅后,一切正常。他可以取消/更改订阅没问题。

但是,一旦他们更改了一次订阅,我就无法调用 swap 或 cancel 而不会抛出 null 错误

在 null 上调用成员函数 cancelNow() 在 null 上调用成员函数 Swap()

两者都意味着 $user->subscription($membership_group) = null。

这可能是什么原因造成的?

【问题讨论】:

  • 更新:问题出现在我将用户切换到新计划然后尝试对用户执行某些操作后。例如,我将用户从计划 1 更改为 2,然后尝试取消 - 用户 - > 订阅 - > 取消 null 错误。我还注意到,当我使用 swap 更改用户计划时,它会更改计划,但不会更改订阅中的名称
  • 您的问题解决了吗?那么请分享您的发现,谢谢。

标签: laravel laravel-5.2 stripe-payments laravel-cashier


【解决方案1】:

这是我找到的解决方案,很丑!我会报告这个错误。

    $user->subscription('current_plan')->swap('plan_to_subscribe');
    $user->save();

    // Messed up work around cause of swap method bug
    DB::update('update subscriptions set name = ? where user_id = ?', [
        $plan,
        $user->id
    ]);

反正暂时有效...

我猜这已经修复了:https://github.com/laravel/cashier/commit/1e87a60f1bf5c8981730d2481350f74fccaf0947#diff-dde586b4ea0798ea4a467b9eba070a7e

等待发布。

【讨论】:

    猜你喜欢
    • 2014-10-28
    • 2019-01-08
    • 2017-04-29
    • 2018-03-28
    • 2018-06-17
    • 1970-01-01
    • 2022-11-18
    • 2021-02-26
    • 2021-09-18
    相关资源
    最近更新 更多