【问题标题】:Change cashier model from User to Hotel将收银员模型从用户更改为酒店
【发布时间】:2021-11-09 01:47:07
【问题描述】:

我想为收银员使用其他模型,而不是默认模型。我有 2 张表 UserHotel 一对多关系(一个用户可以有多个酒店)。我想增加用户可以为其酒店添加不同付款方式的可能性。我从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',
  ];
   .............

【问题讨论】:

  • 您可以编辑您的帖子并添加您的 hoteluser 模型吗?
  • @Atika 完成.....
  • 你应该从请求中得到 hotelId 并尝试使用 $hotel->createOrGetStripeCustomer(),因为你现在在 Hotel 模型中具有 Billable 特征。
  • 您无法从 user 模型访问它,因为您提到您从用户模型中删除了 Billable 特征
  • 你应该寻找类似 @​​987654343@ 的内容,将 0 更改为所需的 hotel 索引

标签: php laravel laravel-8 laravel-cashier


【解决方案1】:

出现此错误是因为您从 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();
    .............
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 1970-01-01
    • 2021-02-21
    • 1970-01-01
    相关资源
    最近更新 更多