gpt4 book ai didi

php - 我想用 Eloquent laravel 5 将人们添加到组中

转载 作者:行者123 更新时间:2023-11-29 05:50:48 26 4
gpt4 key购买 nike

我有两个表UsersGroups,我想将用户添加到具有 Eloquent 关系 的组中。mysql 表:

表:

      id
name
user_id

用户表:

      id
name
email
password

Group.php 模型有:

    public function user()
{
return $this->hasMany('App\User');
}

User.php 模型有:

    public function group()
{
return $this->belongsTo('App\Group');
}

GroupController.php

    public function store(Request $request)
{
$request->validate([
'name'=>'required|string',
'user_id' => 'required',

]);
$group = new Group([
'name' => $request->get('name'),
'user_id'=> $request->get('user_id')
]);
$group->save();

return redirect('/groups')->with('success', 'Group has been added');
}

create.blade.php View

    <div class="form-group">
<select name="user_id[]" class="form-control" multiple>
@foreach ($users as $user)
<option value="{{$user->id}}">{{$user->name}}</option>
@endforeach
</select>
</div>

错误是“数组到字符串的转换”如果我在 TeamController 的 save() 之前添加一个“dd($group)”,我会得到 user_ids dd results但是当它尝试 $group->save();我收到错误,有什么帮助吗?谢谢

最佳答案

根据您的表结构,您尝试执行的操作是不可能的。你需要改变你的表结构,

一个组 - 许多用户,

所以,你的表结构应该是,

群组

  id
name

用户

  id
name
email
password
group_id

你的关系定义应该是,

组模型

  public function users()
{
return $this->hasMany('App\User', 'group_id');
}

用户模型

   public function group()
{
return $this->belongsTo('App\Group', 'group_id');
}

最后,

public function store(Request $request)
{
$request->validate([
'name'=>'required|string',
'user_id' => 'required|array',

]);
$group = new Group([
'name' => $request->get('name'),
]);
$group->save();
foreach($request->get('user_id') as $id)
{
$user = App\User::findOrFail($id);
$user->group_id = $group->id
$user->save();
}

return redirect('/groups')->with('success', 'Group has been added');
}

关于php - 我想用 Eloquent laravel 5 将人们添加到组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54551938/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com