根据Laravel的documentation,您可以指定触发器afterMaking
和afterCreating
。但是我无法弄清楚何时调用这些触发器以及按什么顺序进行]
所以我有这种情况:
$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; });
那么以下哪个假设是正确的?
MyModel
实例,然后调用afterMaking
闭包,然后将对象写入Db,最后调用afterCreating
。MyModel
实例,将对象写入Db,最后调用afterCreating
闭包。MyModel
实例,然后调用afterCreating
闭包,然后将对象写入数据库。根据Laravel的文档,您可以在afterMaking和afterCreating中指定触发器。但是我不知道何时调用这些触发器以及以什么顺序调用,所以我有这个...
create
方法在内部调用make
。 make
将呼叫callAfterMaking
。 create
保存记录后将调用callAfterCreating
。