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