【问题标题】:Laravel 5.4 Cashier add subscriptionLaravel 5.4 Cashier 添加订阅
【发布时间】:2018-01-15 11:30:13
【问题描述】:

我完全按照 Laravel 文档通过 Cashier 创建了一个新订阅。我的控制器如下所示:

public function saveSubscription(Request $request)
{
    $plan = Plan::find($request->input('plan'));
    //$user_id = Auth::id();
    //$user = User::find($user_id); // work but ugly
    //$user = $request->user(); // same error
    $user = Auth::user();

    $user->newSubscription($plan->name, $plan->name)->create($request->input('stripeToken'), [
        'email' => $request->input('stripeEmail'),
    ]);

从Auth 或Request 获取User 模型的所有这些尝试都失败,并出现以下错误:

Call to undefined method Illuminate\Database\Query\Builder::newSubscription()

唯一可行的方法是通过 Auth::id() 调用获取用户 ID,然后手动查找。

我错过了什么吗?

【问题讨论】:

  • 您是否将 Billable 特征添加到您的用户模型中? laravel.com/docs/5.4/billing
  • @CUGreen--谢谢,就是这样!我以为我在发布 Cashier 元素时已经添加了这一点。请添加为答案,我会接受。

标签: php laravel laravel-5 laravel-cashier


【解决方案1】:

您需要将 Billable 特征添加到您的用户模型中

use Laravel\Cashier\Billable;

class User extends Authenticatable
{
    use Billable;
}

【讨论】:

    猜你喜欢
    • 2020-07-25
    • 2015-05-01
    • 2021-04-02
    • 1970-01-01
    • 2017-01-31
    • 2016-03-10
    • 2022-01-03
    • 2018-06-17
    • 2016-03-04
    相关资源
    最近更新 更多