我无法从 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-&gt;hasRole('admin')) checked @endif - 这看起来不对。其次,$request 不是 Request 类的对象而不是数组吗? @entoniperez 我试过了,但问题是现在我的单选框不起作用,现在我可以选择多个单选框并且它们不会取消选中 【参考方案1】:

您的控制器是否获得了您从表单发送的值

如果是,请尝试使用

访问日期

$request->get('admin');

希望这会奏效:)

【讨论】:

我试过这个方法,但现在表单在数据库中什么都不发送:( 在我检查了更多详细信息后,此方法的工作方式与我使用的方法相同,它获取输入名称而不是输入值 你的意思是你没有得到控制器没有从表单中得到信息?

以上是关于我无法从 laravel 中的输入值中获取请求值的主要内容,如果未能解决你的问题,请参考以下文章

如何从单个输入值中获取分类报告

无法从laravel控制器获取输入值

无法从 PHP URL 重写生成的值中获取值

如何从Promise的返回值中取到[[PromiseValue]] ?

从 laravel 中的数组中获取特定值

如何从内联样式属性中获取值并将其放入最接近的输入值中? jQuery