为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用laravel将数组值插入数据库

如何使用laravel将数组值插入数据库

PHP
慕容3067478 2021-06-10 14:08:02
我有组和组成员,一张表用于我只存储组名的组,第二张表是组成员,其中我有 user_id,group_id 字段。我正在使用邮递员创建 API,我想插入这样的组成员详细信息:"group_members": [1,3]我的身体要求是:{    "name": "Steve", // name is group name    "group_members": [1,3]  // [1,3] here 1 and 3 is user_id}我想将 [1,3] 存储到 group_members 表中 user_id 字段中的 group_id 如果有 [1,3] 然后应该在 user_id 字段中输入两个条目我还附上了我的表的屏幕截图:我的控制器:DB::beginTransaction();    try{        $request->request->add(['created_by' => Auth::user()->id]);        $group = $this->group->create($request->only($this->group->getModel()->fillable));        $request->request->add(['group_id' => $group->id]);        $this->groupMembers->create($request->only($this->groupMembers->getModel()->fillable));        DB::commit();        return response([            'status' => true,            'message' => 'Group added',        ], 200);    } catch(\Exception $ex) {        DB::rollback();        return response([            'status' => false,            'message' => __('messages.validation_errors'),            'errors' => $ex->getMessage(),        ], 500);    }我如何将此数组值存储到数据库中,您的帮助将不胜感激?
查看完整描述

2 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

使用附加和多对多关系来完成。


组.php


class Group extends Model

{

    public function users()

    {

        return $this->belongsToMany('App\User', 'group_members');

    }

}

用户名


class User extends Model

{

    public function groups()

    {

        return $this->belongsToMany('App\Group', 'group_members');

    }

}

现在,您只需执行以下操作即可按 ID 将成员添加到组中:


$group = Group::where('name', $request->get('name'))->first();

$group->users()->attach($request->get('group_members', []));

如果您想从组中删除一个或多个成员,情况也是如此:


$group->users()->detach($request->get('group_members', []));


查看完整回答
反对 回复 2021-06-12
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

改变这两行


$request->request->add(['group_id' => $group->id]);

$this->groupMembers->create($request->only($this->groupMembers->getModel()->fillable));


$user_ids = $request->get('group_members');

foreach($user_ids as $user_id){

    $this->groupMembers->create(['group_id' => $group->id, 'user_id'=>$user_id]);

}

希望这能解决您的问题。


查看完整回答
反对 回复 2021-06-12
  • 2 回答
  • 0 关注
  • 310 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信