CakePHPで、以下のようなValidationをかけている時に、
$validator ->decimal('number');
このテーブルnumberというフィールドには数値しか代入できないようにValidationがかかります。
このテーブルに適当に文字列を打ち込んでエラーメッセージを見てみると
$table = TableRegistry::getTableLocator()->get("Tables")->newEntity(['number' => 'hoge']); // hogeという文字列でvalidationにかかる echo($table->getErrors()); // [decimal] => 入力値の形式が不正です
というエラーがデフォルトで得られます。ですが正直、このようなエラーを表にそのまま出してもユーザにとってはどのように不正なのかはよくわかりません。
こういう時は独自に$validatorのmessageを書くと良いです。
$validator ->add('number', 'decimal', [ 'rule' => ['decimal'], 'message' => __('入力が数値ではありません') ])
このようにdecimalのエラーメッセージを書き換えることで、ユーザにとってもわかりやすいメッセージを出力することができます。
$table = TableRegistry::getTableLocator()->get("Tables")->newEntity(['number' => 'hoge']); // hogeという文字列でvalidationにかかる echo($table->getErrors()); // [decimal] => 入力が数値ではありません