カスタムフィールド・標準フィールドでは入力内容の妥当性を検証するためのバリデーションルールを設定することができます。
必須チェック(required)をフィールド設定ファイル(fields.php)で指定する例:
'text' => [
'label' => 'テキスト',
'inputs' => [
'text' => [
'label' => 'テキスト',
'rule' => 'required',
'value' => '',
],
],
],
必須チェック(required)をページコンテンツ設定ファイル(pages.php)で指定する例:
'info_article' => [
'fields' => [
'info_type' => [
'type' => 'radio',
// 省略
'inputs' => [
'radio' => [
'rule' => 'required',
// 省略
],
],
],
],
],
※ フィールドタイプ radio にバリデーションルールを定義していなくても、コンテンツ設定ファイル側で指定(上書き)することができます。
複数のルールを定義する場合は、半角のパイプ記号(|)でルールを連結します。
例:
'rule' => 'required|numeric',
ルール名 | 説明(フィールド値の条件) |
---|---|
required | 必須項目です。 |
required_if |
他のフィールドの値が指定値の場合に必須です。
required_if: の後に他のフィールド名を指定して、その後に値をカンマ区切りで指定します。 例:required_if:left_textarea-textarea,white,green |
required_unless |
他のフィールドの値が指定値と異なる場合に必須です。
required_unless: の後に他のフィールド名を指定して、その後に値をカンマ区切りで指定します。 例:required_unless:left_textarea-textarea,black,red |
alpha | 英字のみを含むことができます。 |
alpha_dash | 英字またはハイフン(-)のみを含むことができます。 |
alpha_num | 英字または数字のみを含むことができます。 |
numeric | 数値でなければなりません。 |
min | バイト数の最小値を指定します。 指定したバイト数以上でなければなりません。 値は min: の後に指定します。 |
min_chars ME拡張 | 文字数(マルチバイト対応)の最小値を指定します。 指定した文字数以上でなければなりません。 値は min_chars: の後に指定します。 |
min_num ME拡張 | 入力値と設定値を数値として比較します。 指定した数値以上でなければなりません。 値は min_num: の後に指定します。 |
max | バイト数の最大値を指定します。 指定したバイト数以下でなければなりません。 値は max: の後に指定します。 |
max_chars ME拡張 | 文字数(マルチバイト対応)の最大値を指定します。 指定した文字数数以下でなければなりません。 値は max_chars: の後に指定します。 |
max_num ME拡張 | 入力値と設定値を数値として比較します。 指定した数値以下でなければなりません。 値は max_num: の後に指定します。 |
between |
指定した最小値と最大値の間のバイト数でなければなりません。
最小バイト数と最大バイト数は between: の後にカンマ区切りで指定します。 例:between:2,8 |
between_chars ME拡張 |
指定した最小値と最大値の間の文字数(マルチバイト対応)でなければなりません。
最小文字数と最大文字数は between_chars: の後にカンマ区切りで指定します。 例:between_chars:2,8 |
between_num ME拡張 |
入力値と設定値を数値として比較します。
指定した最小値と最大値の間の数値でなければなりません。
最小値と最大値は between_num: の後にカンマ区切りで指定します。 例:between_num:100,999 |
有効なメールアドレスでなければなりません。 | |
url | 有効なURL形式でなければなりません。 |
ip | 有効なIPアドレスでなければなりません。 |
ipv4 | 有効なIPv4アドレスでなければなりません。 |
ipv6 | 有効なIPv6アドレスでなければなりません。 |
array | 配列でなければなりません。 |
php ME拡張 | 有効なPHP構文でなければなりません。 |
regex | 指定した正規表現文字列に一致しなければなりません。 |
date |
フォーマットに一致する有効な日付でなければなりません。
フォーマットはPHPの date_create_from_format() で指定できるフォーマットになります。指定できるフォーマットは次のページを参照してください。 http://php.net/manual/ja/datetime.createfromformat.php フォーマット指定を省略したときは「Y-m-d」になります。 |
after |
指定日時よりも後の日時でなければなりません。
指定日時は after: の後に次のように指定します。 after:next week after:2016-12-31 after:2016 after:2016-12-31 09:56:02 |
before | 指定日時よりも前の日時でなければなりません。 指定日時は before: の後に指定します。指定例は after ルールと同様です。 |
same |
他のフィールドの値と一致する必要があります。 例:same:left_textarea-textarea |
different |
フィールドの値は指定した他のフィールドと異なる必要があります。
他のフィールドはフィールド名とインプット名をハイフンで繋いで次のように指定します。 例:different:left_textarea-textarea |
in |
フィールド値がオプションで指定した値のいずれかでなければなりません。
オプションは in: の後にカンマ区切りで指定します。 例:in:white,green |
not_in |
フィールド値がオプションで指定した値のいずれかであってはいけません。
オプションは not_in: の後にカンマ区切りで指定します。 例:not_in:black,red |
unique_composite ME拡張 |
データベースのテーブル内の複数カラムがユニークであることを確認します。
unique_composite: の後に、テーブル名、カラム1、カラム2、除外カラム を指定します。 例:unique_composite:pages,filename,category_id,id |
accepted | 'on' または 'yes', '1', 'true' , true でなければなりません。 |
present | フォームの項目が存在しなければなりません。 |
dir_path ME拡張 | ディレクトリパスの文字種と前後が / で囲われていることを確認します。 |
filename ME拡張 | ファイル名の文字種を確認します。 |
※ 他のフィールド名はフィールド名とインプット名をハイフンで繋いで指定します。
バリデーションライブラリとして Rakit Validation を利用しています。