Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.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 Laravel-按角色名称编辑角色用户_Php_Laravel_Laravel 5_Laravel 5.2 - Fatal编程技术网

Php Laravel-按角色名称编辑角色用户

Php Laravel-按角色名称编辑角色用户,php,laravel,laravel-5,laravel-5.2,Php,Laravel,Laravel 5,Laravel 5.2,我为我的用户制作了一个编辑页面,除了更改角色外,其他一切都正常。我制作了一个选择菜单,通过foreach循环显示所有角色。并显示用户的当前角色,如下所示: <div class="form-group row"> <div class="col-md-4"> <label for="Datum">Rol:</label> </div> <div class="col-md-8"> &l

我为我的用户制作了一个编辑页面,除了更改角色外,其他一切都正常。我制作了一个选择菜单,通过foreach循环显示所有角色。并显示用户的当前角色,如下所示:

<div class="form-group row">
   <div class="col-md-4">
      <label for="Datum">Rol:</label>
   </div>
   <div class="col-md-8">
     <select class="form-control" id="Datum" name="role">
       <option selected>{{ $user->role->role_name }}</option>
       @foreach($roles as $role)
       <option>{{ $role->role_name }}</option>
       @endforeach
     </select>
   </div>
  </div>
在数据库中,用户有一个role_id,在role表中,用户有所有角色。所以关系是:用户有一个角色,角色有多个用户。这些关系在模型中设置。所以
{{$user->role->role\u name}
工作得很好


提前谢谢

假设角色名称是唯一的。在post方法中,您可以执行以下操作-

public function updateUser(Request $request, $id)
{
        $role = Role::where('role_name','=',$request->input('role_name'))->first();
        $user = User::find($id);
        $user->role_id = $role->id;
        $user->save();

       return back()->with('flash', 'Account is geupdate');
}
根据您的评论,将此添加到您的用户模型中-

 public function setPasswordAttribute($password)
{   
    $this->attributes['password'] = bcrypt($password);
}

希望有帮助:)

谢谢你的帮助!当我像这样更改密码时,您也会这样做:
$user->password=$request->password如何再次散列?如果我更改了他的密码,密码会再次被散列?我已经编辑了我的答案,现在看。在此之后,您无需担心在控制器上进行散列以保存或更新新用户。
 public function setPasswordAttribute($password)
{   
    $this->attributes['password'] = bcrypt($password);
}