Laravel Cashier在创建用户后未将条带数据保存到我的数据库。
当我创建一个新用户,然后尝试为该用户(或任何其他用户)分配订阅()时,数据被正确地发送到Stripe,因为我可以看到客户ID,计划选择, etc ...但是我的数据库用户条带列没有在我的数据库中更新。
当我删除代码以创建()用户并只订阅用户时,数据会像应该的那样持久存储到数据库中。在我创建了新用户之后,它才起作用,然后尝试订阅任何用户。
我正在使用Jeffrey Way的模型验证包。
$user = $this->userModel->create($input);
if ($user->hasErrors()) {
throw new \Exception($user->getErrors());
}
$this->createStripeSubscription($user->id, $input['creditCardToken']);
private function createStripeSubscription($user_id, $token) {
//$this->userModel->find(1)->subscription('monthly')->create($token); // Doesn't work either
$this->userModel->find($user_id)->subscription('monthly')->create($token);
}
答案 0 :(得分:1)
我在Confide中遇到了与Ardent验证相似的问题。
在用户模型中覆盖BillableTrait的保存方法解决了这个问题。
class User extends ConfideUser implements BillableInterface {
use BillableTrait;
public function saveBillableInstance()
{
$this->forceSave();
}
}
答案 1 :(得分:0)
问题是与Jeffrey Way的验证模型包发生冲突。或者至少我在使用Cashier时尝试实现它的方式。我决定在其自己的类中抽象出我的验证并删除验证模型包。一切都很好。