我无法从 laravel 中的输入值中获取请求值
Posted
技术标签:
【中文标题】我无法从 laravel 中的输入值中获取请求值【英文标题】:I can't get the request value from input value in laravel 【发布时间】: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 我试过了,但问题是现在我的单选框不起作用,现在我可以选择多个单选框并且它们不会取消选中
【参考方案1】:
您的控制器是否获得了您从表单发送的值
如果是,请尝试使用
访问日期$request->get('admin');
希望这会奏效:)
【讨论】:
我试过这个方法,但现在表单在数据库中什么都不发送:( 在我检查了更多详细信息后,此方法的工作方式与我使用的方法相同,它获取输入名称而不是输入值 你的意思是你没有得到控制器没有从表单中得到信息?以上是关于我无法从 laravel 中的输入值中获取请求值的主要内容,如果未能解决你的问题,请参考以下文章