php - Laravel 收银员多个计划
问题描述
任何人都使用过 Laravel Cashier 并回答了我的以下问题。我想取消订阅,在文档中是这样写的
$user->subscription('default')->cancelNow();
在我的情况下,用户拥有一个地方,我在订阅迁移中添加了一个额外的表,它是“place_id”,并且他拥有的每个地方都有多个订阅,我可以让上面的代码更具体并写这样的东西,这样他就可以取消他拥有的地方的特定订阅
$user->subscription($planName)->where('place_id','=',$placeID)->cancelNow()
还尝试了订阅查询
$subscription = Subscription::query()->active()->
where(['place_id', '=', $placeID], ['user_id', '=', $user->id])->get();
$subscription->cancelNow()
没用,只是我试过了,有人有什么想法吗?我只是在寻找一种使用更具体的代码取消订阅的方法,而不仅仅是订阅的名称。谢谢并恭祝安康!
解决方案
我有类似的情况,付费用户可以拥有多个订阅者和多个订阅者。我通过创建一个subscriber_id
向订阅表添加一个字段的迁移来管理这个
Schema::table('subscriptions', function (Blueprint $table) {
$table->integer('subscriber_id')->nullable()->after('user_id');
});
然后在创建订阅后更新该 ID。
$subscription = $subscription->create($paymentMethod->id); // returns stripe subscription
$subscription = Subscription::find($subscription->id); // so you have ot get the local subscription from the db
$subscription->update(['subscriber_id' => $subscriber->id]);
然后,我可以通过订阅者 ID 和计划获取订阅者的所有订阅或特定订阅
$subscription = Subscription::where('subscriber_id', $subscriber->id)->where('stripe_plan','your_plan')...```
本质上你可以做同样的事情,但place_id
推荐阅读
- python - 为什么在类中调用另一个函数时会收到“名称未定义”错误消息?
- c++ - 结构的 std::vector:调整矢量大小后结构成员的初始值是多少?
- formatting - man – 我怎样才能使单词斜体的一部分?
- java - 3的中位数比java中通常的快速排序花费更多时间
- java - 如何在 JAX-RS 中使数据字段成为可选(非必需)?
- github - 如何强制工程师使用同步的 fork 分支
- python - 具有多种状态的 Pygame 动画
- spring - Spring Cloud数据流如何实现多租户数据库
- javascript - 文本对齐“中心”不适用于表头
- node.js - 有没有办法在 Dialogflow 中检索对话历史记录?