【问题标题】:Laravel Cashier - Class "App\Models\User" not foundLaravel Cashier - 找不到类“App\Models\User”
【发布时间】:2021-12-28 21:30:15
【问题描述】:

当尝试使用 Laravel Cashier 取消订阅时,它返回错误:

找不到类“App\Models\User”

代码:

public function cancel(Request $request) {
    $subscription = Auth::user()->subscription('default');
    $subscription->cancel();
}

这可能是因为我的用户模型不位于“App\Models\User”(Laravel 8 中的新默认值),而是位于“App\User”。

在官方文档中,它提到了这一点:

如果您使用 Laravel 提供的 App\Models\User 模型以外的模型,则需要发布和更改提供的 Cashier 迁移以匹配您的替代模型的表名。

但这不是问题所在。我的表名是一样的,但是我的模型的位置不一样。

我该如何解决这个问题?

【问题讨论】:

    标签: laravel laravel-cashier


    【解决方案1】:
    use App\User; // this is important in your case
    use Laravel\Cashier\Cashier;
    
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        Cashier::useCustomerModel(User::class);
    }
    

    文档:https://laravel.com/docs/8.x/billing#billable-model

    【讨论】:

      【解决方案2】:

      尝试在config/auth.php 中更改您的providers 配置

      'providers' => [
        'users' => [
          'driver' => 'eloquent',
          'model' => App\User::class,
        ],
      ]
      

      参考https://laravel.com/docs/8.x/authentication#the-user-provider-contract

      【讨论】:

        猜你喜欢
        • 2017-06-07
        • 2017-10-04
        • 1970-01-01
        • 1970-01-01
        • 2017-05-14
        • 1970-01-01
        • 2019-09-25
        • 1970-01-01
        • 2021-03-07
        相关资源
        最近更新 更多