在实施 Laravel Cashier 时,我头疼不已,我已成功创建订阅,向卡收费,收到令牌并将所有所述信息存储在订阅表中。
我正在使用以下代码执行此操作,由于某种原因,标准方法不起作用:
public function createSubscription(Request $request) {
\Stripe\Stripe::setApiKey('sk_test_XXXXXXXXXXXXXXXXX');
Auth::user('id')->newSubscription('monthly', 'basic')->trialDays(30)->create($request->stripeToken);
Session::flash('message', 'Your subscription has been updated, thank you.');
return view('pages.packages')->with('user', Auth::user());
}
尽管这与我们被告知要使用的标准代码不同,但它确实有效!继续前进,所以当数据进入表格时,我应该能够打电话给下一个收银员来检查用户是否订阅;
$user->subscribed();
当然,如果顺便说一句,我必须在此之前构建代码,我们最终会得到这样的东西;
Auth::user('id')->subscribed();
这不起作用,它没有出错,它只是每次都返回 false,所以为了避免视图和所有这些,我这样做了;
dd(Auth::user('id')->subscribed());
所有显示的都是错误的,无论他们使用的是用户还是包!
我觉得我的 User.php 中可能缺少一些东西,这是我们将 Cashier 附加到 User 模型的一部分的地方!像这样;
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Laravel\Cashier\Billable;
class User extends Authenticatable
{
use Billable;
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $dates = [
'trial_ends_at', 'subscription_ends_at',
];
}
现在我可能在这里犯了一个非常明显的错误,但是这个应用程序正在吞噬我的存在,所以任何帮助都将不胜感激!
谢谢