受け入れ、拒否されていることのバリデーションについて確認していきます。
受け入れに関しては利用規約の同意にチェックがされているかどうかをバリデートするときなどに利用できます。
確認するルールはaccepted
、accepted_if
、declined
、declined_if
です。
accepted | 受け入れ
入力値が'yes'
、'on'
、'1'
、1
、true
、'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'
、1
、true
、'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'
、0
、false
、'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'
、0
、false
、'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での実装はこちら。
[AD]