LaravelでcheckboxのPOST処理と、そのValidation方法を解説していきます。
①:checkboxのPOST処理
name、valueをcheckboxに応じた書き方で処理していきます。
<section class=""> @foreach($tags as $tag) <label class="inline-flex items-center mt-3"> <input type="checkbox" name="tag_id[]" value="{{$tag->id}}" class="form-checkbox"><span>{{$タグ名称}}</span> </label> @endforeach </section>
checkboxで使われる処理、name=”tag_id[]”
tagを3つ選択して、POSTした場合下記のようなデータがrequestに含まれます。
value=”{{$tag->id}}”で指定したtag_idが配列に含まれます。
#parameters: array:2 [▼ "_token" => "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" "tag_id" => array:3 [▼ 0 => "14" 1 => "15" 2 => "16" ]
②:配列で受けたPOSTに対してValidation
適用したいルール
・データが空ではない (tag_id がデータ有り)
・tag_idが数字である (value=”{{$tag->id}}”)
下記のようなvalidationメソッドの記述をします。
$validated = $request->validate([ 'tag_id' => 'required', 'tag_id.*' => 'required|integer', ]);
ポイントはこちらです。
'tag_id.*' => 'required|integer',
“tag_id” => array:3 [▼ に含まれる 配列の中身に対してvalidationを適用しています。