首页 > 解决方案 > 如何将数据插入许多关系?

问题描述

我有一张表,有四个不同型号的 ID,它们有多对多的关系

  public function up()
{
    Schema::create('district_group_project_users', function (Blueprint $table) {
        $table->id();
        $table->uuid('district_id');
        $table->uuid('group_id');
        $table->uuid('project_id');
        $table->uuid('user_id');
        $table->timestamps();
    });
}

现在我喜欢将数据保存在下表中我使用关系在 project.php 中的每个模型中起作用

    public function users()
{
 return $this->belongsToMany(User::class,'district_group_project_user');
}

在其他方面,我也使用了相同类型的功能,并且在我想附加的用户控制器中

        $user->project()->attach($request->district,$request->userGroup,$request->project);

它不保存,知道如何一次保存以下值

标签: phplaraveleloquentphpmyadmin

解决方案


您可以使用newPivotQuery方法,使查询相对于数据透视表:

 $user->project()->newPivotQuery()
            ->insert(['user_id'=>$user_id,'project_id'=>$request->project,
'group_id'=>$request->userGroup,'district_id'=>$request->district])

推荐阅读