Help us understand the problem. What is going on with this article?

CakePHP / validate で エラーコードなどを受け取る強引なやり方

More than 3 years have passed since last update.

タイトルの通り強引なやり方で validate rule ごとの配列(エラーコードなど)を受け取る方法です。公式ドキュメントにも載っていないのですが、一応動作したのでメモメモ。

messge を配列で受け取る

やり方はいたって簡単で message の中身を配列にするだけです。

通常の message

通常のサンプルとして以下のようなものがあったとします。

public $validate = [
    'name' => [
        'maxLength' => [
            'rule' => ['maxLength', 60],
            'required' => true,
            'allowEmpty' => false,
            'message' => 'タスクを入力してください'
        ],
    ],
];

配列を書いてみる

下記のように message に配列入れてあげると、 validationErrors などでも配列で受け取ることができます。

public $validate = [
    'name' => [
        'maxLength' => [
            'rule' => ['maxLength', 60],
            'required' => true,
            'allowEmpty' => false,
            'message' => [
                'code' => 'E1234',
                'message' => 'タスクを入力してください'
            ],
        ],
    ],
];

注意

ただし、 FormHelper 側では message の配列が処理されません。
FormHelper を使わないシーンで利用できるとは思いますが、公式なやり方ではないのでご注意ください。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away