私はこれを数日間苦労していて、答えを思い付くことができませんでした。私は最初の提出の後にフォーム値を変更する必要があります。この値は、送信された値の1つを使用して外部Webサービスから取得されます。検索に使用される値は、有効なIDであることを確認するためにWebサービスで検証される個人IDです。この情報で、Webサービスは完全な名前を返し、フォームに戻す必要があるため、ユーザーは期待されていると確信し、このフルネームも他の値とともに保存されます。symfony - フォームコールバック検証ツールでフォームの値を変更
私はすでにこのアプローチを見て、私はこれでアクションから、フォームの値を変更することができる午前: http://www.thenameiskhan.com/binding-changed-form-values-symfony
$values = $request->getParameter($form->getName());
$values['yourdate'] = NEW MODIFIED DATE VALUE;
$form->bind($values, $request->getFiles($form->getName()));
が、私は、検証されたSF ValidatorCallback機能にフォームクラスからこれを実現しようとしていますIDが提供され、フルネームを取得..
public function validate_requester_id($validator, $values){
.....
$webserviceanswer = CALLWEBSERVICE($values['person_id'])
if ($webserviceanswer['code'] == VALID){
$values['person_fullname'] = $webserviceanswer['fullname'];
}
if(notvalid or first submit){
...// so as to display fullname to user.....
throw new sfValidatorError($validator, 'blablabla')
...
}
}
がなくバック形態で$値[「person_fullname」]に割り当てられた値は
を変更していないとき後で、requester_id ..のonchangeイベントの後にwebserviceを呼び出すajaxによってfullname値を更新しますが、最初にnonajaxバージョンを使用するようにしたいと考えています。
ありがとうございました。
イワン
をコールバックバリデータ内taintedValuesを使用するための答え...必要性を発見しました。 'あなたのコールバックの終わりにステートメント? – Maerlyn