gpt4 book ai didi

php - 可观察的更新值

转载 作者:行者123 更新时间:2023-11-29 05:55:40 24 4
gpt4 key购买 nike

我的问题很简单我希望每次用户选择一个包时,valid_until 列都会根据所选包递增;为了解决这个问题,我创建了一个

 PackageObservable{
public function creating(Package $package)
{ DB::table('permit')
->select('permit.valid_until')
->join('package', 'user_id', '=', 'package.user_id')
->where('package.name','=',$package->name)
->addMonths(12);
DB::table('permit')
->select('permit.name')
->join('package', 'user_id', '=', 'package.user_id')
->where('package.name','=','option3')
->addWeeks(1);
}}

问题是我不知道如何获取 package.name。Package 和 Permit 之间的关系是这样的:

  1. 套餐(id,name,entry_nr,user_id,price,flga_six_days)
  2. 允许(id、user_id、membership_id、used_entries、valid_until、entries、flag_six_days)提前致谢!感谢您的帮助! throw :

BadMethodCallException Method addMonths does not exist.

最佳答案

假设您的 ServiceProvider 中有如下内容

public function boot()
{
Package::observe(PackageObservable::class);
}

应该将包模型传递给 Observable 类,以便获得包名称,您应该可以简单地执行 $package->name。如果这是 null 那么当你创建包时你没有定义名称。

以下命令所做的只是尝试运行一条选择语句;

DB::table('permit')
->select('permit.valid_until')
->join('package', 'user_id', '=', 'package.user_id')
->where('package.name','=',$package->name)
->addMonths(12);

addMonths 方法在查询构建器上不存在。您的许可模型是否有 addMonths() 方法?

你可能想按照

 $permit = Permit::select("valid_until")->where('user_id',$package->user_id)->orderBy('user_id', 'desc')->first(); 

if ($permit) {
$newValidUntil = $permit->valid_until->addMonths(12);
$permit->update(['valid_until' => $newValidUntil]);
}

如果您发表评论让我知道您的进展情况,我可以随时更新我的​​答案以适应您需要的任何额外信息。

关于php - 可观察的更新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49677874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com