laravel5.8 | 여러 확인란에 old를 사용하고 오류 확인 시 checked
하고 싶은 일
• 여러 개의 확인란이 있음
• 유효성 검사 오류 발생 시 확인란의 내용을 확인한 후 그대로 두기 바랍니다
참고할게요!
Laavel 확인란의 checked = "checked"를 어떻게 표시합니까?
컨디션
・laavel5.8
・php7.2
확인란의 데이터 정보
이번 콤보 상자의 데이터는 DB의 데이터를 사용했고 열쇠는 id/값의 연상 배열을 사용했습니다.
$allRoomTypes = array(
1 => Single,
2 => Double,
3 => Twin,
4 => Triple,
5 => Suite,
6 => Connecting rooms
);
is_aray 및 inaray 사용
찾아보면 나올 거야!
name=type[]
.{{ is_array(old(‘type’)) && in_array($id, old(‘type’), true)? ‘checked=“checked”’ : ‘’ }}
old면 string이 되고 별일 없을 거야in_aray에서 유형
in_array($id, (int)old(‘type’), true)
을 지정하면 오류가 발생합니다(\`)in_array() expects parameter 2 to be array, int given
여러 번 시도했지만 순조롭게 진행되지 못해 기대하는 동작을 하지 못했다(´`)is_aray와 aray키스로 수정!
is_aray 및 inAray가 제대로 진행되지 않아서, isaray와 aray키스 주세요.
@foreach($allRoomTypes as $id => $allRoomType)
<input type="checkbox" name="type[]" id="{{ $allRoomType }}" value="{{ $id }}"@if($errors->any()){{ is_array(old('type')) && array_keys(old('type'), $id)? 'checked="checked"' : '' }}@endif/>
<label for="{{ $allRoomType }}">{{ $allRoomType }}</label>
@endforeach
새 로그인 화면과 같은 초기값이 없습니다. 오류를 검증할 때 입력하기 전에 설치가 완료되었습니다.화면 편집 중
화면 편집
• 초기 값은 DB에 저장된 값
• 발리 일 오류 시 이전에 입력한 내용을 우선적으로 표시하고자 할 때🐍
그때
$roomTypes
DB에 저장된 값을 넣어서in_array
비교해보면 완성이 됩니다.👌 @foreach($allRoomTypes as $id => $allRoomType)
<input type="checkbox" name="type[]" id="{{$allRoomType}}" value="{{ $id }}"
@if($errors->any()){{ is_array(old('type')) && array_keys(old('type'), $id)? 'checked="checked"' : '' }}@else{{ in_array($id, $roomTypes, true)? 'checked="checked"' : '' }}@endif/>
<label for="{{$allRoomType}}">{{ $allRoomType }}</label>
@endforeach
① if에서 처음 오류로 판정된 경우 먼저 입력한 값② 오류가 없을 경우 DB에 저장된 값을 표시합니다.
①→② 순서대로 판단하여 화면을 편집하는 상황에서도 상상할 수 있는 동작◇
🐍🐍🐍
blade 복선상자가 상당히 번거롭군요 (\')
이번에야말로 예상한 동작을 한 셈이지만, 더 좋은 방법이 있다고 생각해요.
Reference
이 문제에 관하여(laravel5.8 | 여러 확인란에 old를 사용하고 오류 확인 시 checked), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/fuwakani/articles/c3e8aa9c443eda14836e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)