Laravelの受け入れ、拒否についてのバリデーションまとめ

受け入れ、拒否されていることのバリデーションについて確認していきます。
受け入れに関しては利用規約の同意にチェックがされているかどうかをバリデートするときなどに利用できます。

確認するルールはacceptedaccepted_ifdeclineddeclined_ifです。

accepted | 受け入れ

入力値が'yes''on''1'1true'true'であることをチェックします。
大文字小文字も識別されるので、小文字である必要があります。

PHP
$rules = ['parameter' => 'accepted'];

// リクエストにパラメーターが含まれていない
$data = [];
Validator::make($data, $rules)->passes(); // false

// null
$data = ['parameter' => null];
Validator::make($data, $rules)->passes(); // false

// 空文字
$data = ['parameter' => ''];
Validator::make($data, $rules)->passes(); // false

// 半角スペース
$data = ['parameter' => ' '];
Validator::make($data, $rules)->passes(); // false

// 空配列
$data = ['parameter' => []];
Validator::make($data, $rules)->passes(); // false

// 'yes'
$data = ['parameter' => 'yes'];
Validator::make($data, $rules)->passes(); // true

// 'no'
$data = ['parameter' => 'no'];
Validator::make($data, $rules)->passes(); // false

// 'on'
$data = ['parameter' => 'on'];
Validator::make($data, $rules)->passes(); // true

// 'off'
$data = ['parameter' => 'off'];
Validator::make($data, $rules)->passes(); // false

// '1'
$data = ['parameter' => '1'];
Validator::make($data, $rules)->passes(); // true

// '0'
$data = ['parameter' => '0'];
Validator::make($data, $rules)->passes(); // false

// 1
$data = ['parameter' => 1];
Validator::make($data, $rules)->passes(); // true

// 0
$data = ['parameter' => 0];
Validator::make($data, $rules)->passes(); // false

// true
$data = ['parameter' => true];
Validator::make($data, $rules)->passes(); // true

// false
$data = ['parameter' => false];
Validator::make($data, $rules)->passes(); // false

// 'true'
$data = ['parameter' => 'true'];
Validator::make($data, $rules)->passes(); // true

// 'false'
$data = ['parameter' => 'false'];
Validator::make($data, $rules)->passes(); // false

// 'Yes'
$data = ['parameter' => 'Yes'];
Validator::make($data, $rules)->passes(); // false

// 'No'
$data = ['parameter' => 'No'];
Validator::make($data, $rules)->passes(); // false

Laravelでの実装はこちら。

accepted_if | 条件付き受け入れ

指定したフィールドの値が指定した値と一致するときに、入力値が'yes''on''1'1true'true'であることをチェックします。
大文字小文字も識別されるので、小文字である必要があります。

PHP
$results = [];

$rules = ['parameter' => 'accepted_if:second,hoge,huga'];

// 'yes'
$data = ['parameter' => 'yes', 'second' => 'hoge'];
Validator::make($data, $rules)->passes(); // true

// 'no'
$data = ['parameter' => 'no', 'second' => 'hoge'];
Validator::make($data, $rules)->passes(); // false

// 指定フィールドが指定した値と異なるときは true になります
$data = ['parameter' => 'no', 'second' => 'piyo'];
Validator::make($data, $rules)->passes(); // true

Laravelでの実装はこちら。

declined | 拒否

入力値が'no''off''0'0false'false'であることをチェックします。
大文字小文字も識別されるので、小文字である必要があります。

PHP
$rules = ['parameter' => 'declined'];

// リクエストにパラメーターが含まれていない
$data = [];
Validator::make($data, $rules)->passes(); // false

// null
$data = ['parameter' => null];
Validator::make($data, $rules)->passes(); // false

// 空文字
$data = ['parameter' => ''];
Validator::make($data, $rules)->passes(); // false

// 半角スペース
$data = ['parameter' => ' '];
Validator::make($data, $rules)->passes(); // false

// 空配列
$data = ['parameter' => []];
Validator::make($data, $rules)->passes(); // false

// 'yes'
$data = ['parameter' => 'yes'];
Validator::make($data, $rules)->passes(); // false

// 'no'
$data = ['parameter' => 'no'];
Validator::make($data, $rules)->passes(); // true

// 'on'
$data = ['parameter' => 'on'];
Validator::make($data, $rules)->passes(); // false

// 'off'
$data = ['parameter' => 'off'];
Validator::make($data, $rules)->passes(); // true

// '1'
$data = ['parameter' => '1'];
Validator::make($data, $rules)->passes(); // false

// '0'
$data = ['parameter' => '0'];
Validator::make($data, $rules)->passes(); // true

// 1
$data = ['parameter' => 1];
Validator::make($data, $rules)->passes(); // false

// 0
$data = ['parameter' => 0];
Validator::make($data, $rules)->passes(); // true

// true
$data = ['parameter' => true];
Validator::make($data, $rules)->passes(); // false

// false
$data = ['parameter' => false];
Validator::make($data, $rules)->passes(); // true

// 'true'
$data = ['parameter' => 'true'];
Validator::make($data, $rules)->passes(); // false

// 'false'
$data = ['parameter' => 'false'];
Validator::make($data, $rules)->passes(); // true

// 'Yes'
$data = ['parameter' => 'Yes'];
Validator::make($data, $rules)->passes(); // false

// 'No'
$data = ['parameter' => 'No'];
Validator::make($data, $rules)->passes(); // false

Laravelの実装はこちら。

declined_if | 条件付き拒否

指定したフィールドの値が指定した値と一致するときに、入力値が'no''off''0'0false'false'であることをチェックします。
大文字小文字も識別されるので、小文字である必要があります。

PHP
$results = [];

$rules = ['parameter' => 'accepted_if:second,hoge,huga'];

// 'yes'
$data = ['parameter' => 'yes', 'second' => 'hoge'];
Validator::make($data, $rules)->passes(); // false

// 'no'
$data = ['parameter' => 'no', 'second' => 'hoge'];
Validator::make($data, $rules)->passes(); // true

// 指定フィールドが指定した値と異なるときは true になります
$data = ['parameter' => 'no', 'second' => 'piyo'];
Validator::make($data, $rules)->passes(); // true

Laravelでの実装はこちら。