我有三个实体,其关系如下: 可以 - > Jobcan< - Job
Jobcan与Can和Job有很多关系。
我按如下方式构建一个JobType表单:
$builder
->add('name','text')
->add('schedule','text')
->add('jobcans', 'entity',array(
'class' => 'RoelabGusBundle:Can',
'property' => 'name',
'multiple' => 'true',
'expanded' => true,))
->add('save','submit')
;
表单按照我的预期呈现数据库中每个Can的复选框可用。但是,在提交表单时,将引发以下异常: 找到类型为Roelab \ GusBundle \ Entity \ Can的实体,关联Roelab \ GusBundle \ Entity \ Job#jobcans,但期待Roelab \ GusBundle \ Entity \ Jobcan
这是可以理解的,因为Job Entity正在寻找Jobcan:
class Job
{
protected $jobcans;
public function __construct()
{
$this->jobcans = new ArrayCollection();
}
最终,我想获取所选Can实体的id并为每个选定的Can创建Jobcan对象/行。
我已经尝试将表单字段设置为普通的旧选项,通过从查询Can表构建数组来填充,但是得到一些关于无法转换int的错误(抱歉,没有确切的错误消息)。
我确定这可能很简单,但对Symfony和OOP来说是新手,所以请提前道歉。
答案 0 :(得分:0)
问题可能在于我认为的类型暗示。如果您最近进行了一些重构(将类名从“Can”更改为“Jobcan”),请检查实体方法是否指向正确的类或检查实体定义(yml或注释)并再次生成实体