【发布时间】:2015-08-04 15:11:13
【问题描述】:
在我的 Symfony 项目 (2.7) 中,我有一个实体 Apartment,它有很多属性。其中之一是Town。
Town 是另一个学说实体,他们有一个City 实体,而City 有一个State。
在我的Apartment 表单中,我选择了 3 个选项。对于Town、City 和State。但是当我想保存时,我只想要Town。
...
$builder->add('town', 'entity', array(
'label' => 'Town',
'choices' => $towns,
'class' => "AppBundle\Entity\Town"
));
$builder->add('city', 'entity', array(
'label' => 'City',
'choices' => $cities,
'class' => "AppBundle\Entity\City"
));
$builder->add('state', 'entity', array(
'label' => 'States',
'choices' => $states,
'class' => "AppBundle\Entity\State"
));
...
是否可以取消设置我不想保存实体公寓的额外字段?
if ($request->getMethod() == 'POST') {
$form->handleRequest($request);
if ($form->isValid()) {
//I want to unset State and City entities.
$apartment = $form->getData();
...
}
我有这个错误:
Neither the property "state" nor one of the methods "addState()"/"removeState()", "setState()", "state()", "__set()" or "__call()" exist and have public access in class "AppBundle\Entity\Apartment".
【问题讨论】:
-
$apartment->setState(null)? -
@Matteo,
$apartment没有setState()方法,因为不必state属性。 -
我可以写
setState($state)函数,但我认为这不是最好的方法 -
我不太明白。
$appartment中是否有state班级成员? -
不,我的班级
$apartment只有Town班级
标签: php forms symfony doctrine-orm