checkboxのPOST処理/validation / Laravel

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を適用しています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です