Laravel Stripe-php 在创建新订阅时计费模型有关系时出现异常

问题描述

在为计费模型创建新订阅时遇到问题。

我的公司模型是计费模型,并遵循 .env 文件中的文档设置 CASHIER_MODEL=App\Models\Company

获取代码时:

$res = $company->newSubscription('subscription','sub_premium_monthly')->create($paymentMethod->id);

我收到一个错误

exception: "Error"
file: "/Users/chad/Sites/FW/vendor/stripe/stripe-PHP/lib/Util/Util.PHP"
line: 232
message: "Object of class Illuminate\Database\Eloquent\Relations\HasManyThrough Could not be converted to string"

我有中间件检查公司的所有权(如果属于提出请求的员工),因此当它到达控制器方法添加订阅时,附加了 employees 关系,我得到例外。

我花了一段时间才弄清楚为什么但最后我只是在检查中间件后取消了员工的设置...但是当检查公司是否已经订阅$company->subscribed('subscription'); 公司有一个新的订阅关系并且需要解除这种关系。

订阅添加之前使每个关系不安之后......它起作用了。

我的问题是我做错了什么,因为在调用 newSubscription 方法之前需要一个零关系的“干净”模型似乎很奇怪?

我使用的是 PHP 7.4 - laravel 8.23.1 - 收银员 12.6.3

编辑 1/21/21:

如果有帮助,下面是错误日志。

[2021-01-20 18:38:27] local.ERROR: Object of class Illuminate\Database\Eloquent\Relations\HasManyThrough Could not be converted to string {"userId":17,"exception":"[object] (Error(code: 0): Object of class Illuminate\Database\Eloquent\Relations\HasManyThrough Could not be converted to string at /Users/chad/Sites/FW/vendor/stripe/stripe-PHP/lib/Util/Util.PHP:232)
[stacktrace]
#0 /Users/chad/Sites/FW/vendor/stripe/stripe-PHP/lib/Util/Util.PHP(172): Stripe\Util\Util::urlEncode(Object(Illuminate\Database\Eloquent\Relations\HasManyThrough))
#1 /Users/chad/Sites/FW/vendor/stripe/stripe-PHP/lib/HttpClient/CurlClient.PHP(225): Stripe\Util\Util::encodeParameters(Array)
#2 /Users/chad/Sites/FW/vendor/stripe/stripe-PHP/lib/ApiRequestor.PHP(422): Stripe\HttpClient\CurlClient->request('post','https://api.str...',Array,false)
#3 /Users/chad/Sites/FW/vendor/stripe/stripe-PHP/lib/ApiRequestor.PHP(119): Stripe\ApiRequestor->_requestRaw('post','/v1/subscriptio...',Array)
#4 /Users/chad/Sites/FW/vendor/stripe/stripe-PHP/lib/ApiOperations/Request.PHP(63): Stripe\ApiRequestor->request('post',Array)
#5 /Users/chad/Sites/FW/vendor/stripe/stripe-PHP/lib/ApiOperations/Create.PHP(25): Stripe\ApiResource::_staticRequest('post',Array)
#6 /Users/chad/Sites/FW/vendor/laravel/cashier/src/SubscriptionBuilder.PHP(274): Stripe\Subscription::create(Array,Array)
#7 /Users/chad/Sites/FW/app/Http/Controllers/SubscriptionController.PHP(112): Laravel\Cashier\SubscriptionBuilder->create('pm_1IBlWPCZJTjT...')
#8 /Users/chad/Sites/FW/vendor/laravel/framework/src/Illuminate/Routing/Controller.PHP(54): App\Http\Controllers\SubscriptionController->store(Object(App\Models\Company),Object(Illuminate\Http\Request))
#9 /Users/chad/Sites/FW/vendor/laravel/framework/src/Illuminate/Routing/Controllerdispatcher.PHP(45): Illuminate\Routing\Controller->callAction('store',Array)
#10 /Users/chad/Sites/FW/vendor/laravel/framework/src/Illuminate/Routing/Route.PHP(254): Illuminate\Routing\Controllerdispatcher->dispatch(Object(Illuminate\Routing\Route),Object(App\Http\Controllers\SubscriptionController),'store')

此外,我尝试切换回作为计费模型的用户模型,并且工作正常。 (编辑订阅数据库行、.env 文件以及 ->subscription()、->onTrial() 等的所有实例) 仍然停留在这个奇怪的问题上。有人有什么想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...