Php 如何覆盖/更改laravel模型';你的靴子在飞吗?

Php 如何覆盖/更改laravel模型';你的靴子在飞吗?,php,model,laravel-5.8,Php,Model,Laravel 5.8,我试图以一种方式构建我的应用程序,当它实现时,第一步是从另一个系统导入(复制)一整堆现有数据 它的关键部分是,存在大量具有业务引用标识符的现有对象,这些对象必须保持原样 然而,在这之后,所有新项目都需要一个新的标识符,当然该标识符必须是唯一的 因此,如果不重写我的模型中的引导函数,我可以很好地进行导入,但此后我将面临没有唯一业务引用标识符的风险 如果我覆盖了启动功能(如下所示),那么导入将无法正常工作,现有的业务引用标识符将被唯一的新标识符覆盖 我怀疑解决办法是尝试在飞行中改变我的模型,所以我被

我试图以一种方式构建我的应用程序,当它实现时,第一步是从另一个系统导入(复制)一整堆现有数据

它的关键部分是,存在大量具有业务引用标识符的现有对象,这些对象必须保持原样

然而,在这之后,所有新项目都需要一个新的标识符,当然该标识符必须是唯一的

因此,如果不重写我的模型中的引导函数,我可以很好地进行导入,但此后我将面临没有唯一业务引用标识符的风险

如果我覆盖了启动功能(如下所示),那么导入将无法正常工作,现有的业务引用标识符将被唯一的新标识符覆盖

我怀疑解决办法是尝试在飞行中改变我的模型,所以我被卡住了

 public static function boot()
    {
        parent::boot();
        static::creating(function ($model) {
            $model->BusinessReference = uniqid('PRODUCT-');
        });
    }
传入数据

PRODUCT-1097
PRODUCT-1098
PRODUCT-1099
当我重写引导方法时

PRODUCT-c2a7e56
PRODUCT-87afe52
PRODUCT-883eab3
我能看到的唯一选项是将设置保存到数据库表中,然后检查是否已完成导入。如果导入从未完成,则不要覆盖引导。如果有,那就不要

但我想知道是否有更优雅的解决方案

提前谢谢