laravel5.8 | 여러 확인란에 old를 사용하고 오류 확인 시 checked

blade 파일의 체크 상자가 진전되어 집합하기 어려워졌습니다

하고 싶은 일


• 여러 개의 확인란이 있음
• 유효성 검사 오류 발생 시 확인란의 내용을 확인한 후 그대로 두기 바랍니다
참고할게요!
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 복선상자가 상당히 번거롭군요 (\')
이번에야말로 예상한 동작을 한 셈이지만, 더 좋은 방법이 있다고 생각해요.

좋은 웹페이지 즐겨찾기