0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

俺「バリデーションってなんやねん」

Last updated at Posted at 2022-06-10

安全じゃないデータを取り除くで

バリデーションを英語ではvalidationと書く。

「確認」って意味があって、確認するらしい(?)。

Web開発におけるvalidation

Web開発でバリデーションと言ったら、バックエンドで入力されたデータが正しいかを確認するよ!

正しくないデータ

例えば以下の要素を登録できる投稿サイトがあるとする。

  • タイトル(*)
  • 本文(*)
  • カテゴリー
  • タグ

この中で(*)を付けた要素は必須項目で、必ず何かしらのデータが必要だとする。

もしあるユーザーがタイトルと本文を空欄のまま投稿しようとすると、それはWebサイト的にはアウトの扱いとなる。

タイトルと本文が空のままのデータを登録されても困る。

こういうトラブルを未然に防ぐのがバリデーション。

要素を確認するよ

Laravelを例に紹介するけど、データが与えられてそれが登録されるまでの間にバリデーションを挟むことで、データに不備があるときはそれ以上処理が進まないようにできるし、不備がなかったら処理が先に進むようになっている。

public function create(Request $request)
{
    // ココがバリデーション
    $request->validate([
        'title' => 'required|max:255',
        'body' => 'required',
    ]);
    // データに不備があると、これ以上先に進まなくなる

    // この下にデータを登録する処理がある
}

Laravelにあまり馴染みのない人は、この$requestの中にフォームのデータが入っていると思ってもらってOK🙆‍♂️

上記はバリデーションの例だけど、こんな感じでデータの登録処理をする前に確認処理(=バリデーション)を挟むことによって、事前に与えられたデータに不備がないかを保証できる。

バリデーションのルールはこんな感じやで

ちなみに、上記の例で行われているバリデーションの内容はこんな感じ

要素 バリデーションのルール
title(タイトル) 必須項目である、最大文字数が255である
body(本文) 必須項目である

まとめ

こんな感じでデータ処理の間にバリデーションを挟むと、そのデータが正しいフォーマットで送信されているのを確認できるよ😌

皆んなも使ってみてね!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?