【发布时间】:2019-04-21 14:44:09
【问题描述】:
更新:所以我刚刚发现$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
【问题讨论】:
-
我认为您需要为每个输入更改不同的名称值。
-
@if($user->hasRole('admin')) checked @endif- 这看起来不对。其次,$request不是Request类的对象而不是数组吗? -
@entoniperez 我试过了,但问题是现在我的单选框不起作用,现在我可以选择多个单选框并且它们不会取消选中
标签: php laravel permissions roles laravel-permission