[js 없음] Laravel에서 확인란을 선택하지 않은 경우 기본값 사용(false)

3320 단어 Laravel
선택하지 않았을 때 checkbox는 요청에 포함되지 않습니다.hidden를 찾아봤는데 js 중에서 선택하고 선택하지 않을 때 고쳐서 사용합니다.
Laravel이라면 이렇게 하자. 내가 해볼게.
오류, 기타 방법 등이 있으면 지적해 주십시오.

view


일단 뷰측.
보통 몇 개의 체크 상자만 있습니다
blade

<form action="{{route('test')}}" method="post">
    @csrf
    <input type="checkbox" value=1 name="c1">
    <input type="checkbox" value=1 name="c2">
    <input type="checkbox" value=1 name="c3">
</form>

Request


FormRequest를 작성합니다.
php artisan make:request CheckRequest
생성된 후 덮어쓰기getValidatorInstance.
우선적으로 보내는 값 때문에 기본 측면에merge 덮어쓰기
CheckRequest.php

    protected function getValidatorInstance()
    {
        // デフォルト
        $default = [
            'c1' => 0,
            'c2' => 0,
            'c3' => 0,
        ];
        $data = array_merge($default,$this->all());

        $this->getInputSource()->replace($data);

        return parent::getValidatorInstance();
    }

dd($this->all(),$default,$data);보내는 요청, 기본값, 병합 후 다음과 같습니다.c3 은 선택되어 있지 않으므로 보내지 않고 기본값을 사용합니다.

이후에는 검증하고 등록하기만 하면 된다.

좋은 웹페이지 즐겨찾기