お世話になっております。
今回は表題の件について質問です。
バリデーションエラーが起きた際にメッセージを出そうと思っているのですが、
その際入力されたデータをエラーメッセージに表示したいと思っています。
そこで考えたのが、バリデーション時に入力した内容をテーブル側で取得し、
その値をメッセージに入れ込む、という方法です。
Userテーブルにユーザーが登録されていて、そのユーザーに紐づく得点テーブルUserPointテーブルがあります。
得点テーブルには複数回登録できません。
一度に複数登録できるため、分かりやすいようにエラー時にユーザーの名前とコードを表示させたいです。
PHP
1// UserPointsController 2$datum = [ 3 '0' => [ 4 // user_code:1 は登録済みのためエラーを出す 5 'user_code' => '1', 6 'user_name' => 'test_user1', 7 'point' => '95', 8 ], 9 '1' => [ 10 'user_code' => '2', 11 'user_name' => 'test_user2', 12 'point' => '100', 13 ], 14]; 15 16$entities = $this->UserPoints->newEntities($datum, ['validate' => 'Edit']); 17$save = $this->UserPoints->saveMany($entities); 18 19// UserPointsTable 20public function validationEdit(Validator $validator) 21{ 22 $validator 23 ->notEmpty('user_code') 24 // ユーザーコードが既に登録されているかどうかを判定する 25 ->add('user_code', 'checkRegisteredUserCode', [ 26 'rule' => [$this, 'checkRegisteredUserCode'], 27 'message' => sprintf( 28 '「%1$s:%2$s」の得点は既に登録されています!', 29 // ココで入力値を取得したい 30 $user_code, 31 $user_name 32 ), 33 ]); 34 return $validator; 35}
バリデーションが通っていることは確認済みです。
また、この方法は不可能なのであれば、何か代替案などはありますでしょうか?
拙い文章で申し訳ありません。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/04/12 08:48
2017/04/13 11:15