Laravel Cashier - 找不到类“App\Models\User”
Posted
技术标签:
【中文标题】Laravel Cashier - 找不到类“App\\Models\\User”【英文标题】: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 迁移以匹配您的替代模型的表名。
但这不是问题所在。我的表名是一样的,但是我的模型的位置不一样。
我该如何解决这个问题?
【问题讨论】:
【参考方案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
【讨论】:
以上是关于Laravel Cashier - 找不到类“App\Models\User”的主要内容,如果未能解决你的问题,请参考以下文章
找不到类“Laravel\Socialite\SocialiteServiceProvider”