laravel postされた値が指定されたテーブルのカラムに存在するか確認するバリデーションルール

この記事はアンテクアドベントカレンダー2022の2日目の記事です。

https://adventar.org/calendars/7821

皆さんこんにちは、サーバーサイドエンジニアの大川です。今回はlaravelのバリデーションルールについてです。受け取った値がDBに存在しているか否かをチェックするバリデーションルールをまとめます。

使うバリデーションルール

今回のチェックをしたい場合、existsルールを使います。下記の様に記載します。

'キー名' => 'esists:テーブル名,カラム名'

ここでユーザーidがpostされたときのバリデーションを考えてみましょう。

postされる時の値のキー名:id
テーブル名:users
カラム名:id

上記の情報を用いてユーザーidがpostされたとき、その値はテーブルに存在しているかのチェックをしてみましょう。

'id' => 'estates:users,id'

これでバリデーションを設定する事ができます。またバリデーションルール記載時にテーブル名とカラム名の間の区切り前後でスペースを開けないようにしましょう!

参考文献

https://readouble.com/laravel/9.x/ja/validation.html#rule-exists

TAGS使用タグ一覧