Symfony - 三个相关实体的表格

时间:2014-02-27 01:02:58

标签: php oop symfony

我有三个实体,其关系如下: 可以 - > 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来说是新手,所以请提前道歉。

1 个答案:

答案 0 :(得分:0)

问题可能在于我认为的类型暗示。如果您最近进行了一些重构(将类名从“Can”更改为“Jobcan”),请检查实体方法是否指向正确的类或检查实体定义(yml或注释)并再次生成实体