PHP Symfony Forms如何访问嵌套对象中的属性

Man*_*lte 2 php forms formbuilder symfony

我正在使用SymfonyFormBuilder创建几个表单.通常我提供一个平面对象,它包含表单需要访问的所有属性.这很好用.表单使用正确的值填充对象,我可以将其作为json发送到处理它的Web服务(因此我根本不访问数据库).但在几种情况下,我从Web服务获得了必须更新的嵌套对象,或者我必须将嵌套对象(作为json)发送到服务,我想知道是否可以访问表单中嵌套对象的属性.

通常你这样做

$form = $this->createFormBuilder($myObject)
->add('myProp', 'text', array(
    'label'=>$this->get('translator')->trans('my Property')
))
Run Code Online (Sandbox Code Playgroud)

但在我的情况下,myObject拥有另一个对象,其中包含一些属性.所以我需要做这样的事情:

$form = $this->createFormBuilder($myObject)
->add('nestedObj.myProp', 'text', array(
    'label'=>$this->get('translator')->trans('my Property')
))
Run Code Online (Sandbox Code Playgroud)

但不幸的是,这似乎不起作用.是否有另一种解决方案来处理嵌套对象和表单?

Ber*_*sek 6

字段名称中不允许使用点(原因在于HTML规范的详细信息).但是,您可以覆盖"property_path"选项以自定义已使用的属性路径:

$form = $this->createFormBuilder($myObject)
    ->add('myProp', 'text', array(
        'label' => $this->get('translator')->trans('my Property'),
        'property_path' => 'nestedObj.myProp',
    ))
Run Code Online (Sandbox Code Playgroud)