Symfony2获取表单数据

时间:2015-10-27 12:37:46

标签: php symfony

我正在学习Symfony2,而且我被阻止了。

我做了一个表单,我可以获取值,但我不知道如何获取对象的字段

创建表单的代码:

$form = $this->createFormBuilder()
        ->add('type', 'choice', array('choices' => array('o' => 'Invoice','v' => 'Reconciliation')))    
        ->add('clients','entity',array(
        'class' => 'PVRecsBundle:Client',
        'query_builder' => function(EntityRepository $er){
            return $er->createQueryBuilder('c')
            ->orderBy('c.legalcompanyname','ASC');
        },
        'property' => 'legalCompanyName',
        'expanded' => false,
        'multiple' => false))           
        ->add('dates','date',array('widget' => 'choice', 'input' => 'timestamp'))
        ->add('save', 'submit')
        ->getForm();
        $form->handleRequest($request);

获取数据的代码:

    $request = $this->get('request');
    if ($request->getMethod() == 'POST')
    {
        $data = $form->get('clients')->getData();
        dump($data);

    }

我得到了正确的数据,但我得到了客户的所有字段。

转储我的var:

Client {#654 ▼
       -id: 11334
       -name: 101579
       -identifiercdr: 101579
       -vatnumber: ""
       -einnumber: ""
        ....
       }

但现在如何获得每个示例的字段identifiercdr

错误:

Catchable Fatal Error: Object of class PV\RecsBundle\Entity\Client could not be converted to string

我认为应该是这样的:

$data = $form->get('clients')['identifiercdr']->getData();

1 个答案:

答案 0 :(得分:1)

尝试:

$client = $form->get('clients')->getData();
$identifiercdr = $client->getIdentifiercdr();

(我假设您的Client实体有一个identifiercdr字段的getter。如果没有,请添加它。