【发布时间】:2021-11-09 01:47:07
【问题描述】:
我想为收银员使用其他模型,而不是默认模型。我有 2 张表 User 和 Hotel 一对多关系(一个用户可以有多个酒店)。我想增加用户可以为其酒店添加不同付款方式的可能性。我从user 中删除了收银员列,并添加到hotel 表中。
我输入了services.php:
'stripe' => [
'model' => \App\Models\Hotel::class,
'key' => env('STRIPE_KEY'),
'secret' => env('STRIPE_SECRET'),
],
在我的控制器中:
public function get(Request $request)
{
$creditorId = config('id');
$user = $request->user();
$stripeUser = $user->createOrGetStripeCustomer();
.............
}
我添加了Hotel.php Billable 并从用户中删除了Billable。
现在我有错误:
Call to undefined method App\Models\User::createOrGetStripeCustomer()
过去曾为User.php 工作。我该如何解决这个错误?
User.php:
class User extends Authenticatable implements CanResetPassword {
use Notifiable, HasSanctumTokens, HasFactory;
protected $fillable = [
'email',
'password',
'lang',
];
.......
Hotel.php:
class Hotel extends Model
{
use Billable, HasFactory;
public $incrementing = false;
protected $fillable = [
'id',
'name',
'user_id',
];
.............
【问题讨论】:
-
您可以编辑您的帖子并添加您的 hotel 和 user 模型吗?
-
@Atika 完成.....
-
你应该从请求中得到
hotelId并尝试使用$hotel->createOrGetStripeCustomer(),因为你现在在Hotel模型中具有Billable特征。 -
您无法从
user模型访问它,因为您提到您从用户模型中删除了Billable特征 -
你应该寻找类似 @987654343@ 的内容,将
0更改为所需的hotel索引
标签: php laravel laravel-8 laravel-cashier