Php 我想把人们加入到有口才的拉雷维尔5的小组中
我有两个表用户和组,我想将用户添加到具有雄辩关系的组中。 mysql表: 组表:Php 我想把人们加入到有口才的拉雷维尔5的小组中,php,mysql,laravel,eloquent,Php,Mysql,Laravel,Eloquent,我有两个表用户和组,我想将用户添加到具有雄辩关系的组中。 mysql表: 组表: id name user_id id name email password 用户表格: id name user_id id name email password Group.php模型具有: public function us
id
name
user_id
id
name
email
password
用户表格:
id
name
user_id
id
name
email
password
Group.php模型具有:
public function user()
{
return $this->hasMany('App\User');
}
public function group()
{
return $this->belongsTo('App\Group');
}
User.php模型具有:
public function user()
{
return $this->hasMany('App\User');
}
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');
}
id
name
创建.blade.php查看
<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>
@foreach($users作为$user)
{{$user->name}
@endforeach
错误为“数组到字符串的转换”
如果我在TeamController的save()之前添加一个“dd($group)”,我会得到用户ID,但当它尝试$group->save()时;我发现了错误,有什么帮助吗?感谢使用for loop将用户保存到组
foreach($request->user_id as $user_id)
$group = new Group([
'name' => $request->get('name'),
'user_id'=> $user_id
]);
$group->save();
)
正如其他评论所述,您应该对它们进行循环。
用户模型tho上不应该有组id吗?
这样,您的组名是唯一的,并且可以将用户添加到组中,或者如果您希望用户属于多个组,则可以为其创建透视表 分组表: 用户表: 编辑: 正如其他人所说的那样,你必须绕过他们。变量
$request->get('user_id')
包含在标记中选择的所有用户的数组。你想绕过去。这将在组表tho中创建重复的名称
foreach ($request->get('user_id') as $userid){
$group = new Group();
$group->name = $request->get('name');
$group->user_id = $userid;
$group->save();
}
表结构不允许您尝试执行的操作。您需要更改您的表结构 一组-多个用户 所以,您的表结构应该是 集团
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');
}
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 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');
}
嘿,我得到了“Undefined variable:user_id”,谢谢你的帮助是的,这是正确的方法,父子,但是我将如何进入组视图并多选择用户?要将它们添加到组中,请参见编辑中的我的示例,希望这能让您明白谢谢您的帮助
$user\u id
未定义。非常感谢您的完整回答