Laravel 5.5 バリデーション ルール 日本語

原文

Validation - Laravel - The PHP Framework For Web Artisans

accepted

検証中のフィールドは、yes、on、1、またはtrueでなければなりません。これは "利用規約"の承認を検証するのに便利です。

active_url

検証中のフィールドには、dns_get_recordPHP関数に従って有効なAレコードまたはAAAAレコードが必要です。

after:date

検証中のフィールドは、指定された日付の後の値でなければなりません。日付はstrtotimePHP関数に渡されます:

'start_date' => 'required|date|after:tomorrow'

byによって評価される日付文字列を渡す代わりに、日付strtotimeと比較する別のフィールドを指定することができます:

'finish_date' => 'required|date|after:start_date'

after_or_equal:date

検証中のフィールドは、指定された日付以降の値でなければなりません。詳細については、アフタールールを参照してください。

alpha

検証中のフィールドは完全に英字でなければなりません。

alpha_dash

検証中のフィールドには英数字、ダッシュ、アンダースコアを使用できます。

alpha_num

検証中のフィールドは完全に英数字でなければなりません。

array

検証中のフィールドはPHPでなければなりませんarray

before:date

検証中のフィールドは、指定された日付より前の値でなければなりません。日付はPHP strtotime関数に渡されます。

before_or_equal:date

検証中のフィールドは、指定した日付に等しいかそれより前の値でなければなりません。日付はPHP strtotime関数に渡されます。

between:min,max

検証中のフィールドは、指定された最小値と最大値の間のサイズを持つ必要があります。文字列、数値、配列、ファイルは、sizeルールと同じ方法で評価されます。

boolean

検証中のフィールドはブール値としてキャストできなければなりません。受け付けた入力されtrue、false、1、0、"1"、と"0"。

confirmed

検証中のフィールドには一致するフィールドが必要ですfoo_confirmation。たとえば、検証中のフィールドがあるpassword場合、一致するpassword_confirmationフィールドが入力内に存在する必要があります。

date

検証中のフィールドは、strtotimePHP関数に従って有効な日付でなければなりません

date_equals:date

検証中のフィールドは、指定された日付と等しくなければなりません。日付はPHP strtotime関数に渡されます。

date_format:format

検証中のフィールドは、指定されたフォーマットと一致する必要があります。あなたは使用する必要がありますいずれか dateまたはdate_formatフィールドを検証する際、両方ではありません。

different:field

検証中のフィールドは、フィールドと異なる値を持つ必要があります。

digits:value

検証中のフィールドは数値で、正確な長さの値でなければなりません。

digits_between:min,max

検証中のフィールドの長さは、指定された最小値と最大値の間でなければなりません。

dimensions

検証中のファイルは、ルールのパラメータで指定された次元の制約を満たすイメージでなければなりません。

'avatar' => 'dimensions:min_width=100,min_height=200'

使用可能な制約は、min_width、max_width、min_height、max_height、width、height、ratioです。

比率制約は高さで割った幅として表現されなければなりません。これは、次のような文またはfloatのいずれかで指定できます。3/2 1.5

'avatar' => 'dimensions:ratio=3/2'

このルールはいくつかの引数を必要とするため、このメソッドを使用してルールを流暢に構築できます。Rule::dimensions

use Illuminate\Validation\Rule;

Validator::make($data, [
    'avatar' => [
        'required',
        Rule::dimensions()->maxWidth(1000)->maxHeight(500)->ratio(3 / 2),
    ],
]);

distinct

配列を操作する場合、検証中のフィールドには重複する値があってはなりません。

'foo.*.id' => 'distinct'

email

検証中のフィールドは、電子メールアドレスとしてフォーマットする必要があります。

exists:table,column

検証中のフィールドは、指定されたデータベーステーブルに存在する必要があります。

存在規則の基本的な使用法
'state' => 'exists:states'
カスタム列名の指定
'state' => 'exists:states,abbreviation'

場合によっては、existsクエリに使用する特定のデータベース接続を指定する必要があります。これを達成するには、「ドット」構文を使用してテーブル名に接続名を追加します。

'email' => 'exists:connection.staff,email'

検証ルールによって実行されたクエリをカスタマイズする場合は、そのRuleクラスを使用してルールを流暢に定義することができます。この例では、|文字を使用して区切る代わりに、配列として検証ルールを指定します。

use Illuminate\Validation\Rule;

Validator::make($data, [
    'email' => [
        'required',
        Rule::exists('staff')->where(function ($query) {
            $query->where('account_id', 1);
        }),
    ],
]);

file

検証中のフィールドは正常にアップロードされたファイルでなければなりません。

filled

検証中のフィールドは、存在する場合は空であってはいけません。

image

検証中のファイルはイメージ(jpegpngbmp、gif、またはsvg)でなければなりません。

in:foo,bar,...

検証中のフィールドは、指定された値のリストに含める必要があります。このルールでimplodeは配列を必要とすることが多いため、このメソッドを使用してルールを流暢に構築できます。Rule::in

use Illuminate\Validation\Rule;

Validator::make($data, [
    'zones' => [
        'required',
        Rule::in(['first-zone', 'second-zone']),
    ],
]);

in_array:anotherfield

検証の下のフィールドには、中に存在している必要がありanotherfieldの値。

integer

検証中のフィールドは整数でなければなりません。

ip

検証中のフィールドはIPアドレスでなければなりません。

ipv4

検証中のフィールドはIPv4アドレスでなければなりません。

ipv6

検証中のフィールドはIPv6アドレスでなければなりません。

json

検証中のフィールドは、有効なJSON文字列でなければなりません。

max:value

検証中のフィールドは、最大値以下でなければなりません。文字列、数値、配列、ファイルは、sizeルールと同じ方法で評価されます。

mimetypes:text/plain,...

検証中のファイルは、指定されたMIMEタイプのいずれかと一致する必要があります。

'video' => 'mimetypes:video/avi,video/mpeg,video/quicktime'

アップロードされたファイルのMIMEタイプを判断するには、ファイルの内容が読み込まれ、フレームワークMIMEタイプを推測しようとします。これはクライアントが提供するMIMEタイプとは異なる場合があります。

mimes:foo,bar,...

検証中のファイルには、リストされている拡張子の1つに対応するMIMEタイプが必要です。

MIMEルールの基本的な使用法
'photo' => 'mimes:jpeg,bmp,png'

拡張子を指定するだけで済みますが、このルールは実際にはファイルの内容を読み込み、そのMIMEタイプを推測することで、ファイルのMIMEタイプを検証します。

MIMEタイプとそれに対応する拡張機能の完全なリストは、次の場所にあります。 https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types

min:value

検証中のフィールドには最小値が必要です。文字列、数値、配列、ファイルは、sizeルールと同じ方法で評価されます。

nullable

検証中のフィールドは、次のようになりますnull。これは、null値を含むことができる文字列や整数などのプリミティブを検証する場合に特に便利です。

not_in:foo,bar,...

検証中のフィールドは、指定された値のリストに含まれていてはなりません。この方法は、ルールを流暢に構築するために使用されます。Rule::notIn

use Illuminate\Validation\Rule;

Validator::make($data, [
    'toppings' => [
        'required',
        Rule::notIn(['sprinkles', 'cherries']),
    ],
]);

umeric

検証中のフィールドは数値でなければなりません。

present

検証中のフィールドは入力データに存在する必要がありますが、空でもかまいません。

regex:pattern

検証中のフィールドは、指定された正規表現と一致する必要があります。

注意:regexパターンを使用するときは、パイプの区切り文字を使用する代わりに、特に正規表現にパイプ文字が含まれている場合は、ルールを配列で指定する必要があります。

required

検証中のフィールドは、入力データに存在し、空ではありません。次のいずれかの条件が当てはまる場合、フィールドは「空」と見なされます。

  • 値はnullです
  • 値は空の文字列です。
  • 値は空の配列または空のCountableオブジェクトです。
  • 値は、パスのないアップロードされたファイルです。

required_if:anotherfield,value,...

anotherfieldフィールドが任意の値と等しい場合、検証中のフィールドは存在し、空ではありません。

required_unless:anotherfield,value,...

anotherfieldフィールドが任意の値と等しい場合を除いて、検証中のフィールドは存在し、空ではありません。

required_with:foo,bar,...

検証中のフィールドは存在し、他の指定されたフィールドが存在する場合にのみ空ではありません。

required_with_all:foo,bar,...

検証中のフィールドは、指定された他のフィールドがすべて存在する場合にのみ存在し、空でない必要があります。

required_without:foo,bar,...

検証中のフィールドは、指定された他のフィールドが存在しない場合にのみ存在し、空でない必要があります。

required_without_all:foo,bar,...

検証中のフィールドは、指定された他のすべてのフィールドが存在しない場合にのみ存在し、空でない必要があります。

same:field

指定されたフィールドは、検証中のフィールドと一致する必要があります。

size:value

検証中のフィールドは、指定された値と一致するサイズを持つ必要があります。文字列データの場合、valueは文字数に対応します。数値データの場合、valueは指定された整数値に対応します。配列の場合、sizeは配列の配列に対応しcountます。ファイルの場合、サイズはファイルサイズ(キロバイト)に対応します。

string

検証中のフィールドは文字列でなければなりません。フィールドも許可するnull場合は、nullableルールをフィールドに割り当てる必要があります。

timezone

検証中のフィールドは、timezone_identifiers_listPHP関数に従って有効なタイムゾーン識別子でなければなりません。

unique:table,column,except,idColumn

検証中のフィールドは、特定のデータベーステーブル内で一意でなければなりません。columnオプションが指定されていない場合は、フィールド名が使用されます。

カスタム列名の指定:
'email' => 'unique:users,email_address'
カスタムデータベース接続

場合によっては、バリデーターによるデータベース照会のカスタム接続を設定する必要が生じることがあります。上記のように、検証ルールとして設定すると、デフォルトのデータベース接続を使用してデータベースが照会されます。これを無効にするには、 "dot"構文を使用して接続とテーブル名を指定します。unique:users

'email' => 'unique:connection.users,email_address'
与えられたIDを無視する一意の規則を強制する:

場合によっては、一意のチェック中に特定のIDを無視することもできます。たとえば、ユーザーの名前、電子メールアドレス、および場所を含む「プロファイルの更新」画面を考えます。もちろん、電子メールアドレスが一意であることを確認する必要があります。ただし、ユーザーが電子メールフィールドではなく名前フィールドのみを変更した場合、ユーザーは電子メールアドレスの所有者であるため、検証エラーがスローされることは望ましくありません。

バリデーターにユーザーのIDを無視するよう指示するために、このRuleクラスを使用してルールを流暢に定義します。この例では、|文字を使用してルールを区切る代わりに、検証ルールを配列として指定します。

use Illuminate\Validation\Rule;

Validator::make($data, [
    'email' => [
        'required',
        Rule::unique('users')->ignore($user->id),
    ],
]);

テーブルがプライマリキーのカラム名以外を使用しているid場合は、ignoreメソッドを呼び出すときにカラムの名前を指定できます。

'email' => Rule::unique('users')->ignore($user->id, 'user_id')
追加の句を追加する:

また、whereメソッドを使用してクエリをカスタマイズして、追加のクエリ制約を指定することもできます。たとえば、のは、検証し、制約追加してみましょうaccount_idです1。

'email' => Rule::unique('users')->where(function ($query) {
    return $query->where('account_id', 1);
})

url

検証中のフィールドは有効なURLである必要があります。