[Symfony]カスタムバリデータで特定のフィールドに対してエラーメッセージを設定する
カスタムバリデータ作った時、エラーメッセージが特定のフィールドじゃなくてフォーム全体に対して設定されて困った。
特定のフィールドに対して設定するにはPropertyPathを書き換えてaddViolationでエラーを追加すればばよいらしい...
// isValid()の中で $propertyPath = $this->context->getPropertyPath(); $this->context->setPropertyPath($propertyPath .'.'. $constraint->field); $this->context->addViolation($constraint->message, $params, $invalidValue);
あとこのあとreturn false;とかするとフォーム全体に対してエラー判定がかかってしまって、空エラーみたいのが入ったりするので注意