タイトルの通り強引なやり方で 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 を使わないシーンで利用できるとは思いますが、公式なやり方ではないのでご注意ください。