我按照Laravel 文档实现了 Cashier,但我无法让它工作。
简而言之:
- 进行和迁移的迁移
- 将 Billable 添加到我的
User.php
模型中 - 向我添加了密钥,在我
.env
的中引用它们config/services.php
并将 SDK 调用添加到我的AppServiceProvider.php
如果需要,我可以粘贴代码,但它与文档中的代码相同(我检查过但你永远不知道)。
现在,如果我尝试运行
$user = User::find(2);
$response = $user->charge(15);
dd($response);
在我的控制器中,我收到错误:
InvalidArgumentException in CustomerGateway.php line 567:
expected customer id to be set
---
in CustomerGateway.php line 567
at CustomerGateway->_validateId(null) in CustomerGateway.php line 198
at CustomerGateway->find(null) in Customer.php line 106
at Customer::find(null) in Billable.php line 440
at User->asBraintreeCustomer() in Billable.php line 29
at User->charge('15') in MyController.php line 787
在我看来,错误就在这里:
at Customer::find(null) in Billable.php line 440
这给出null
了CustomerGateway
. 所以这是在第 29 行调用的代码Billable.php
$customer = $this->asBraintreeCustomer();
public function asBraintreeCustomer()
{
return BraintreeCustomer::find($this->braintree_id);
}
谢谢!
更新
我做dd($this)
了asBraintreeCustomer()
方法并得到了我的用户。但是braintree_id
属性是null
。我如何填充这些?我应该手动做吗?