Laravel:在播种期间基于工厂的多对多关系增加关键值

时间:2019-05-23 10:07:47

标签: pivot laravel-5.7 laravel-seeding

我的场景是一个流程有很多流程,一个流程可以属于很多流程。

这是我的关系:

//Flow.php
public function process(){
    return $this->belongsToMany(Process::class , 'prod_flow_process' , 'prod_flow_id' , 'prod_process_id' )->withPivot('order');
}

//Process.php
public function flows(){
    return $this->belongsToMany(Flow::class , 'prod_flow_process' , 'prod_process_id' , 'prod_flow_id' )->withPivot('order');
}

所以我可以做Flow::first()->process,并使用枢轴order获得所有过程。反之亦然。

我目前正在使用这种代码为数据库播种。

//Create link between flows and process
    $process = Process::all();

    Flow::all()->each( function ( $flow ) use ( $process ){
        $flow->process()->attach(                
            $process->random( rand(1,3) )->pluck('id')->toArray()
        );
    });

但是我不知道如何在播种期间通过保持 attach 方法来添加透视图order

听起来这个问题可能是重复的,但是我没有找到像我这样的帖子。

0 个答案:

没有答案