HTML フォーム フィールドからの選択オプションに基づいてフィールドの検証を変更するフォームを作成しようとしています。
例: ユーザーがドロップダウン フィールド "options" からオプション 1 を選択した場合、フィールド "metric" を sfValidatorInteger として検証する必要があります。ユーザーがフィールド「オプション」からオプション 2 を選択した場合、フィールド「メトリック」を sfValidatorEmail などとして検証する必要があります。
そのため、public function configure() { 内に、「オプション」の値を取得するための switch ステートメントがあり、「オプション」から返された値に基づいてバリデーターを作成します。
1.) 「オプション」の値を取得するにはどうすればよいですか? 私はもう試した:
$this->getObject()->options
$this->getTaintedValues()
現在私のために働いている唯一のものは、実際にはMVCではありません:
$params = sfcontext::getInstance()->getRequest()->getParameter('options');
2.) その情報を取得したら、「メトリック」の値を別のフィールドに割り当てるにはどうすればよいですか? (「メトリック」は db の実際の列ではありません)。したがって、「メトリクス」の値を「email」、「age」などの別のフィールドに割り当てる必要があります...現在、ポストバリデーターでこれをこのように処理していますが、configure( ):
$this->validatorSchema->setPostValidator(new sfValidatorCallback(array('callback' => array($this, 'checkMetric'))));
public function checkMetric($validator, $values) {
}
ありがとう!