首页 > 解决方案 > 将一对多关系更改为多对多关系?

问题描述

我有一个一对多的关系(客户有很多动作),我想将其更改为多对多的关系(一个人有很多动作,动作属于很多人)。

最好的行动步骤是什么?

我创建了数据透视表 person_actions 并对模型添加了更改。

人物模型

    public function actions()
    {
            return $this->belongsToMany('App\Action', 'person_actions', 'person_id', 'action_id')
                ->withTimestamps();
    }

动作模型

    public function persons()
    {
            return $this->belongsToMany('App\Person', 'person_actions')
                ->withTimestamps();
    }

并且一直在寻找将操作转换为 person_actions 表的后续步骤。

在客户端上有一个“main_person_id”列,我希望在移动到 Person 模型时将所有当前操作分配给该列。

标签: phpmysqllaraveleloquent

解决方案


推荐阅读