我无法从laravel的输入值中获取请求值

时间:2018-11-19 09:02:09

标签: php laravel permissions roles spatie

更新:所以我刚发现$request只能获得input name,因此我不得不更改单选框的形式,以使input name必须不同

因此,我正在laravel中处理角色和权限,并且我正在使用spatie软件包来获取角色和权限https://github.com/spatie/laravel-permission,但我陷于单选框形式。我试图让管理员可以更改其在仪表板上的用户角色,但我从单选框获得的价值始终是最后一个。

这是我的edit.blade.php

中的表格
<div class="form-group">
      <label for="user-role">Role</label>
      <br />
      <label class="radio-inline">
        <input type="radio" name="optradio" value="admin" @if($user->hasRole('admin')) checked @endif> Admin </input>
      </label>
      <label class="radio-inline">
        <input type="radio" name="optradio" value="manager" @if($user->hasRole('manager')) checked @endif> Menager </input>
      </label>
      <label class="radio-inline">
        <input type="radio" name="optradio" value="user" @if($user->hasRole('user')) checked @endif> User </input>
      </label>
    </div>

这是我的UsersController.php

中的函数
$request['admin'] ? $user->assignRole('admin') : $user->removeRole('admin');
$request['manager'] ? $user->assignRole('manager') : $user->removeRole('manager');
$request['user'] ? $user->assignRole('user') : $user->removeRole('user');

现在$request得到的是input name而不是value,由于名称相同,我无法更改它,因为它破坏了我的形式,因此它得到了最后一个,并且总是注册为user

1 个答案:

答案 0 :(得分:0)

您的控制器是否从表单中获取您要发送的值

如果是,请尝试使用

访问日期
  

$ request-> get('admin');

希望这会起作用:)