你好,我正在尝试做动力形式,我有一些问题..我一直试图遵循modification.html和一些相关的教程,但没有结果。
目前,我正在收到以下错误:
可捕获的致命错误:传递给UserBundle\Form\Type\CompanyRegistrationFormType::UserBundle\Form\Type{closure}()的参数2必须是UserBundle\Entity\扇区的实例,UserBundle\Entity\Company给定的实例,在第82行的UserBundle/Form/Type/CompanyRegistrationFormType.php中调用并定义
我有三个实体表:
Company.php
/**
* @ORM\OneToMany(targetEntity="Sector", mappedBy="company")
*/
protected $sector;Sector.php
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(name="name", type="string")
*/
protected $name;
/**
* @ORM\ManyToOne(targetEntity="Company", inversedBy="sector")
*/
protected $company;
/**
* @ORM\OneToMany(targetEntity="MainCategory", mappedBy="sector")
*/
protected $mainCategory;MainCategory.php
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string")
*/
protected $name;
/**
* @ORM\ManyToOne(targetEntity="Sector", inversedBy="mainCategory")
*/
protected $sector;FormType.php
$builder->add('sector', 'entity', array(
'class' => 'UserBundle:Company'));
$formModifier = function (FormInterface $form, Sector $sector = null) {
$mainCategories = null === $sector ? array() : $sector->getAvailableMainCategories();
$form->add('mainCategory', 'entity', array(
'class' => 'UserBundle:Sector',
'choices' => $mainCategories));
};
$builder->addEventListener(
FormEvents::PRE_SET_DATA,
function (FormEvent $event) use ($formModifier) {
$data = $event->getData();
$formModifier($event->getForm(), $data);
});
$builder->get('sector')->addEventListener(
FormEvents::POST_SUBMIT,
function (FormEvent $event) use ($formModifier) {
$sector = $event->getForm()->getData();
$formModifier($event->getForm()->getParent(), $sector);
});和树枝:
{{ form_row(form.sector) }} {# <select id="company_sector" #}
{{ form_row(form.mainCategory) }} {# select id="company_mainCategory" #}
<script>
var $sector = $('#company_sector');
$sport.change(function(){
var $form = $(this).closest('form');
var data = {};
data[$sector.attr('name')] = $sector.val();
$.ajax({
url : $form.attr('action'),
type : $form.attr('method'),
data : data,
success: function(html) {
$('#company_mainCategory').replaceWith(
$(html).find('#company_mainCategory'));
}
});
});
</script>82线
$formModifier($event->getForm(), $data);如果我把它改成
$formModifier($event->getForm(), $data->getSector());我得到以下错误:
注意:未定义的属性:UserBundle\Entity\Company:$mainCategory
有人能帮我吗?耽误您时间,实在对不起!
发布于 2015-07-06 23:35:42
$builder->add('sector', 'entity', array(
'class' => 'UserBundle:Company'));您必须传入与实体扇区关联的类参数类名(我想是UserBundle:Sector)。
symfony2实体字段类型的文档
https://stackoverflow.com/questions/31257245
复制相似问题