Laravel 5.5 バリデーション ルール 日本語
原文
Validation - Laravel - The PHP Framework For Web Artisans
accepted
検証中のフィールドは、yes、on、1、またはtrueでなければなりません。これは "利用規約"の承認を検証するのに便利です。
active_url
検証中のフィールドには、dns_get_record
PHP関数に従って有効なAレコードまたはAAAAレコードが必要です。
after:date
検証中のフィールドは、指定された日付の後の値でなければなりません。日付はstrtotime
PHP関数に渡されます:
'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
検証中のフィールドは、strtotime
PHP関数に従って有効な日付でなければなりません
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'
検証中のフィールドは、電子メールアドレスとしてフォーマットする必要があります。
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
検証中のファイルはイメージ(jpeg、png、bmp、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_list
PHP関数に従って有効なタイムゾーン識別子でなければなりません。
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である必要があります。