我正在学习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();
答案 0 :(得分:1)
尝试:
$client = $form->get('clients')->getData();
$identifiercdr = $client->getIdentifiercdr();
(我假设您的Client
实体有一个identifiercdr
字段的getter。如果没有,请添加它。