如何在laravel 8中自动更新产品状态

如何在laravel 8中自动更新产品状态,laravel,eloquent,laravel-8,Laravel,Eloquent,Laravel 8,当产品Qty 1和Qty bigIncrements('ProductID')时,我想自动将产品状态更新为“不可用”; $table->string('Name'); $table->string('Brand'); $table->mediumText('image')->nullable(); $table->string('Description'); $table->string(‘保修’); $table->integer('Price'); $table->integer('Qty'

当产品
Qty 1和Qty bigIncrements('ProductID')时,我想自动将产品状态更新为“不可用”;
$table->string('Name');
$table->string('Brand');
$table->mediumText('image')->nullable();
$table->string('Description');
$table->string(‘保修’);
$table->integer('Price');
$table->integer('Qty');
$table->string('Status')->nullable()->default(“库存”);
$table->unsignedbiginger('AdminID');
$table->foreign('AdminID')->references('EmpID')->on('users');
$table->timestamps();
}); 

您可以作为observer产品类来完成 (更多信息请访问) 或者简单地将这样的观察操作添加到ProductModel类中

 protected static function boot()
    {
        parent::boot();
        
        /*
         *
         * retrieved : after a record has been retrieved.
         * creating : before a record has been created.
         * created : after a record has been created.
         * updating : before a record is updated.
         * updated : after a record has been updated.
         * saving : before a record is saved (either created or updated).
         * saved : after a record has been saved (either created or updated).
         * deleting : before a record is deleted or soft-deleted.
         * deleted : after a record has been deleted or soft-deleted.
         * restoring : before a soft-deleted record is going to be restored.
         * restored : after a soft-deleted record has been restored.
         *
         * */
        
        static::saved(function ($model){
            if ($model->Qty <= 0) {
                $model->Status = 'Not Available';
                $model->save();
            }
            
            if ($model->Qty <= 5 && $model->Qty >= 1) {
                $model->Status = 'Reorder level';
                $model->save();
            }
        });
    }
受保护的静态功能启动()
{
父::boot();
/*
*
*检索:检索记录后。
*创建:在创建记录之前。
*创建:创建记录后。
*更新:在更新记录之前。
*更新:记录更新后。
*保存:保存(创建或更新)记录之前。
*保存:记录保存(创建或更新)后。
*删除:在记录被删除或软删除之前。
*删除:记录被删除或软删除后。
*还原:在软删除记录要还原之前。
*还原:软删除记录还原后。
*
* */
静态::已保存(函数($model){
如果($型号->数量状态='不可用';
$model->save();
}
如果($model->Qty>=1){
$model->Status='Reorder level';
$model->save();
}
});
}

您可以在文档中阅读更多内容

您需要为
产品
创建一个观察者类,并在产品被删除、创建或更新后运行该函数。您可以进一步解释一下吗。我无法解决这个问题。问题出在哪里?我使用您的代码。但不更新。我也在appServiceProvider中使用该类。
公共函数启动(){product::observe(productObserver::class);}
并更改config.app.php并在产品模型中使用您的代码。但我无法解决此问题。在此处发布您的post.php模型
命名空间app\Models;使用illumb\Database\Eloquent\Factories\HasFactory;使用illumb\Database\Eloquent\model;类产品扩展模型{使用HasFactory;protected$primaryKey=“ProductID”;public function users(){return$this->belongsTo(User::class,'EmpID');}protected static function boot(){parent::boot();static::saved(function($model){if($model->Qty Status='Not Available';$model->save();}
这是product.php