Форма ввода радио не переходит к объекту запроса Laravel


Форма ввода радио не переходит к объекту запроса Laravel

21.09.2020 04:51:30 Просмотров 38 Источник

У меня есть форма, которая содержит гендерный ввод в виде переключателя, но когда я пытаюсь отправить с пустым значением, элемент переключателя не попадает в объект запроса, который в приведенном ниже примере называется jenis_kelamin. Но если jenis_kelamin имеет значение, то элемент jenis_kelamin будет введен в объект запроса.

Мне нужен элемент в объекте запроса, потому что если радиоэлемент пуст, то будет ошибка с требуемым входным сообщением. Итак, я надеюсь на то, как радиовход попадает в объект запроса, когда значение пусто, и почему это происходит.

Routes

Route::get('/mahasiswas/create', 'MahasiswaController@create')->name('mahasiswas.create');
Route::post('/mahasiswas', 'MahasiswaController@store')->name('mahasiswas.store');

Controller

public function create(){
  return view('form-pendaftaran');
}
public function store(Request $request){
   dump($request);
}

Смотреть

<form action="{{route('mahasiswas.store')}}" method="post">
@csrf
<div class="form-group">
   <label>Jenis Kelamin</label>
   <input type="radio" name="jenis_kelamin" id="laki-laki" value="L">
   <label for="laki-laki">Laki-laki</label>
</div>
<button type="submit" class="btn btn-primary mb-2">Daftar</button>
</form>

Радиовход, если значение равно нулю

Radio Input if the value is null

Радиовход если есть значение

Radio Input if there a value

Примечания : я использую Laravel 7

У вопроса есть решение - Посмотреть?

Ответы - Форма ввода радио не переходит к объекту запроса Laravel / Form Input Radio Doesn't Go To The Request Object Laravel

Является ответом!
Mihai Matei

21.09.2020 05:00:31

Вы можете решить эту проблему, поместив скрытый вход с тем же именем перед радиовходами

<form action="{{route('mahasiswas.store')}}" method="post">
@csrf
<div class="form-group">
   <label>Jenis Kelamin</label>
   <input type="hidden" name="jenis_kelamin" value="" />
   <input type="radio" name="jenis_kelamin" id="laki-laki" value="L">
   <label for="laki-laki">Laki-laki</label>
</div>
<button type="submit" class="btn btn-primary mb-2">Daftar</button>
</form>

Если пользователь проверяет радиовход, то он будет переопределять установленный вами скрытый вход.

PS: то же самое исправление применимо и к флажкам

PPS: вероятно, исправление, написанное в комментариях, тоже работает, но это работает независимо от используемого фреймворка

PPPS: это исправление может стать проблемой, если выполняется выбор запроса по атрибуту name, но разработчик должен знать об этом.

Помочь в развитии проекта:
Закрыть X