Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我想把人们加入到有口才的拉雷维尔5的小组中_Php_Mysql_Laravel_Eloquent - Fatal编程技术网

Php 我想把人们加入到有口才的拉雷维尔5的小组中

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

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

表:

      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
未定义。非常感谢您的完整回答