Laravel Eloquent ORM Factory:当我用工厂创建模型时,afterMaking 会在afterCreating 之前被调用吗?

Laravel Eloquent ORM Factory: Will afterMaking be called before afterCreating when I create a model with a factory;

根据 Laravel 的 documentation,您可以指定触发器 afterMakingafterCreating。但我无法弄清楚这些触发器何时被调用以及调用顺序如何

所以我有这个场景:

$myModel=factory(MyModel::class)->create();

有以下工厂:

use Faker\Generator as Faker;
use App\Model\MyModel

$factory->define(MyModel::class,function(Faker $faker){

return [
   'sum'=>10
];
});

$factory->afterCreating(MyModel::class,function(MyModel $model, Faker $faker){

  $model->sum=30;
  $model->save();
});


$factory->afterCreating(MyModel::class,function(MyModel $model, Faker $faker){

  $model->sum=30;
  $model->save();
});

$factory->afterMaking(MyModel::class, function(MyModel $model, Faker $faker){
   $model->sum=40;
});

那么以下哪些假设是正确的?

  1. 首先创建一个MyModel实例,然后调用afterMaking闭包,然后将对象写入Db,最后调用afterCreating
  2. 首先创建一个MyModel实例,然后将对象写入Db,最后调用afterCreating闭包。
  3. 先创建一个MyModel实例,然后调用afterCreating闭包,然后将对象写入数据库。

create 方法在内部调用 makemake 将在创建实例后调用 callAfterMakingcreate 将在存储记录后调用 callAfterCreating

所以,选项 1。