Skip to content

Instantly share code, notes, and snippets.

@lotsofbytes
Last active October 6, 2018 20:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lotsofbytes/af9d1a1818c831be546e79b95f066392 to your computer and use it in GitHub Desktop.
Save lotsofbytes/af9d1a1818c831be546e79b95f066392 to your computer and use it in GitHub Desktop.
[バリデーション:between] #laravel #L55 #validation

バリデーション:between

入力値が、指定のサイズの範囲内であることを判定。入力値が、文字列なら文字数、配列ならその個数がサイズとなる。 文字列を数値としての扱いたいなら、numericあるいはintegerが前ルールとして必要(例:integer|size:4)。

laravel 5.5

gistの画面

以下の実行で、ダウンロードできます

$ git clone git@gist.github.com:af9d1a1818c831be546e79b95f066392.git tests/Unit/Validations/Between
<?php
namespace Tests\Unit\Validations\Between;
use Tests\TestCase;
use Validator;
class BetweenTest extends TestCase
{
/**
* @test
* @dataProvider provider_between
*/
public function between($input, $expected)
{
$v = Validator::make(
$input,
['field' => 'required|between:3,4']
);
$this->assertEquals($expected, $v->passes());
}
public function provider_between()
{
return [
// 文字列なら長さ
[['field' => '000'], true],
[['field' => '0000'], true],
[['field' => 'abcd'], true],
[['field' => '00'], false],
[['field' => '00000'], false],
// 配列なら個数
[['field' => ['a', 'b', 'c']], true],
[['field' => ['a', 'b', 'c', 'd']], true],
[['field' => ['a', 'b']], false],
[['field' => ['a', 'b', 'c', 'd', 'e']], false],
];
}
/**
* @test
* @dataProvider provider_between_numeric
*/
public function between_numeric($input, $expected)
{
$v = Validator::make(
$input,
['field' => 'required|numeric|between:3,4'] // numericが必要
);
$this->assertEquals($expected, $v->passes());
}
public function provider_between_numeric()
{
return [
// 数字なら整数
[['field' => '3'], true],
[['field' => '4'], true],
[['field' => '0004'], true],
[['field' => '3.9'], true],
[['field' => '2'], false],
[['field' => '4.9'], false]
];
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment