質問: $this->UserPoints->saveMany($entities); // UserPointsTable public function validationEdit(Validator $validator) { $validator ->notEmpty('user_code') // ユーザーコードが既に登録されているかどうかを判定する ->add('user_code', 'checkRegisteredUserCode', [ 'rule' => [$this, 'checkRegisteredUserCode'], 'message' => sprintf( '「%1$s:%2$s」の得点は既に登録されています!', // ココで入力値を取得したい $user_code, $user_name ), ]); return $validator; } ``` バリデーションが通っていることは確認済みです。 また、この方法は不可能なのであれば、何か代替案などはありますでしょうか? 拙い文章で申し訳ありません。よろしくお願いいたします。
回答: バリデーションメソッドで文字列を返すと、それがメッセージと使われます。なので`checkRegisteredUserCode`内でバリデーションエラー時には、入力値を使ったメッセージを作ってreturnすればできると思います。 なお、falseを返した場合、バリデーションのmessageオプションで指定したものが使われます。