0

渡された値を変更してこの新しい値を返すフォームフィルターがあります。エンティティをバインドした後、オブジェクトは期待どおりに新しい値で更新されますが、フォームを再度表示すると、(フォームから渡された)古いデータが引き続き表示されます。

$ formオブジェクトには、$ data(配列)と$ object(エンティティ)の2つのデータセットがあります...バインド時に$dataは$objectから値を取得し、入力フィルターが処理されると$objectはから更新されます入力フィルター、フォームを再度表示すると、$ dataが表示されます(入力フィルターから$ objectへの更新された変更なし)...

有効性を判断した後(したがって入力フィルターを実行した後)に$ dataを再入力するにはどうすればよいですか?

// $form->data == $entity Values (Original)
$form->bind($entity);
// $form->data updated to $formValues (from post)
$form->setData($formValues);
// $entity Values update to InputFilters & $formValues
if($form->isValid()) {
  // Saves the new $entity values
  $this->getEntityManager()->flush();
}
$response->setVariables(array(
  // $form->data shows $formValues but not updated InputFilter values 
  'form' => $form,
}
4

0 に答える 0