Php Laravel雄辩的ORM工厂:当我用工厂创建模型时,AfterMake是否会在AfterCreation之前调用;
根据Laravel的说明,您可以指定触发器Php Laravel雄辩的ORM工厂:当我用工厂创建模型时,AfterMake是否会在AfterCreation之前调用;,php,laravel,laravel-5.6,Php,Laravel,Laravel 5.6,根据Laravel的说明,您可以指定触发器在生成后和在创建后。但我无法确定何时调用这些触发器以及调用顺序 所以我有这样一个场景: $myModel=factory(MyModel::class)->create(); 使用以下工厂: use Faker\Generator as Faker; use App\Model\MyModel $factory->define(MyModel::class,function(Faker $faker){ return [ 'sum
在生成后
和在创建后
。但我无法确定何时调用这些触发器以及调用顺序
所以我有这样一个场景:
$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
实例,然后调用aftermake
闭包,然后将对象写入数据库,最后调用afterCreating
MyModel
实例,然后将对象写入数据库,最后在创建后调用闭包
MyModel
实例,然后调用afterCreating
闭包,然后将对象写入数据库create
方法在内部调用make
make
将在创建实例后调用callaftermake
<代码>创建将在存储记录后调用callAfterCreating
因此,选项1。正确的方法是首先创建一个MyModel实例,然后调用AfterMake闭包,然后将对象写入数据库,最后调用AfterCreation。对吗?