将收银员模型从用户更改为酒店
Change cashier model from User to Hotel
我想为收银台使用其他模型,而不是默认模型。我有 2 tables User
和 Hotel
一对多关系(一个用户可以拥有多个酒店)。我想增加用户可以为其酒店添加不同付款方式的可能性。我从 user
中删除了收银台列并添加到 hotel
table.
我输入 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',
];
.............
出现此错误是因为您从 User
模型中删除了 Billable
特征并将其移至 Hotel
模型
那么在这种情况下,您需要根据模型关系做什么 (one
-> many
)
用户模型
class User extends Authenticatable implements CanResetPassword {
use Notifiable, HasSanctumTokens, HasFactory;
protected $fillable = [
'email',
'password',
'lang',
];
public function hotels()
{
return $this->hasMany(Hotel::class);
}
之后,您需要从控制器传递 hotel
作为参数而不是 user
控制器
public function get(Request $request, Hotel $hotel)
{
$stripeUser = $hotel->createOrGetStripeCustomer();
.............
}
我想为收银台使用其他模型,而不是默认模型。我有 2 tables User
和 Hotel
一对多关系(一个用户可以拥有多个酒店)。我想增加用户可以为其酒店添加不同付款方式的可能性。我从 user
中删除了收银台列并添加到 hotel
table.
我输入 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',
];
.............
出现此错误是因为您从 User
模型中删除了 Billable
特征并将其移至 Hotel
模型
那么在这种情况下,您需要根据模型关系做什么 (one
-> many
)
用户模型
class User extends Authenticatable implements CanResetPassword {
use Notifiable, HasSanctumTokens, HasFactory;
protected $fillable = [
'email',
'password',
'lang',
];
public function hotels()
{
return $this->hasMany(Hotel::class);
}
之后,您需要从控制器传递 hotel
作为参数而不是 user
控制器
public function get(Request $request, Hotel $hotel)
{
$stripeUser = $hotel->createOrGetStripeCustomer();
.............
}