前提・実現したいこと
CakePHP3のバリデーション発生したエラーを他のフィールド表示できないかと考えております。
あるテーブルにnumとimgeフィールドがあり、numが入力された場合imageも必須としたいと考えております。
また、登録時に既にimageが登録されている場合、編集ではPOSTデータに含まれていなくても登録済みとし、エラーを発生させません。
php
1$validator 2 ->integer('num', 'numには数値を入力してください。') 3 ->requirePresence('num', 'create') 4 ->allowEmpty('num') 5 ->add('num', 'custom', [ 6 'rule' => function ($value, $context) { 7 if ($context['newRecord']) { 8 return !(!empty($context['data']['num']) && empty($context['data']['image'])); 9 } else { 10 $data = $this->get($context['data']['id']); 11 return !(!empty($context['data']['num']) && (empty($context['data']['image']) && empty($data->image))); 12 } 13 }, 14 'message' => 'numを入力する際は、imageも入力して下さい。', 15 ]); 16 17$validator 18 ->allowEmpty('image');
ここでエラーが発生した際、numを入力する際は、imageも入力して下さい。
のメッセージをimageフィールドに表示したいのですが、書き方がわからず困っております。
お手数ではございますが、何卒よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/27 11:03