バリデーション

カスタムフィールド・標準フィールドでは入力内容の妥当性を検証するためのバリデーションルールを設定することができます。

必須チェック(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
email 有効なメールアドレスでなければなりません。
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 を利用しています。