ОБНОВЛЕНИЕ: Я только что узнал, что $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 Я пробовал это и работал, но проблема в том, что теперь мои радиобоксы не работают, теперь я могу выбрать несколько радиобоксов, и они не снимают отметку






Получает ли ваш контроллер значение, которое вы отправляете из своей формы
Если да, попробуйте получить доступ к дате с помощью
$request->get('admin');
Надеюсь, это сработает :)
Я пробовал этот метод, но теперь форма ничего не отправляет в базе данных :(
После того, как я проверил более подробную информацию, этот метод работает так же, как и метод, который я использовал, он получает имя входа вместо входного значения
Вы имеете в виду, что вы не получаете контроллер не получает информацию из формы?
Я думаю, вам нужно изменить разные значения имени для каждого ввода.