我在表單類型中創建了一個屬性(foo
)。此屬性的目標是將buildForm()
方法(已初始化的位置以及PRE_SUBMIT
偵聽程序所在的位置已修改)的值傳遞給buildView()
中的$view->vars
。如何處理表單類型的幫助屬性?
這就是我想要做的(沒有服務聲明)樣本:
class FooType extends AbstractType
{
private $foo;
public function buildForm(FormBuilderInterface $builder, array $options)
{
$this->foo = rand(0, 100);
$builder->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) {
$this->foo = rand(0, $event->getData());
});
}
public function buildView(FormView $view, FormInterface $form, array $options)
{
$view->vars['foo'] = $this->foo;
}
public function getParent()
{
return NumberType::class;
}
}
但這總是返回相同foo
值的所有窗體字段,當我的預期相反。下面的屏幕截圖顯示了CollectionType
3個FooType
條目:
我不知道爲什麼!
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefault('foo', rand(0, 100));
}
,但我無法弄清楚如何修改當前此選項:另外,我用options
還是當它(因爲它僅用於內部目的)不會對我來說很有意義嘗試形式方法。
如何正確實現它?
謝謝!
這工作,謝謝! – presto