ОБНОВЛЕНИЕ: я только что узнал, что $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
, а не массивом? - person Script47   schedule 19.11.2018