setIdRevision()必须是AppBundle \ Entity \ RevisionInfo的实例,或者为null,给定的整数,

时间:2019-04-26 09:16:51

标签: php symfony symfony-3.4

我有问题,我是symfony 3.4的学生,我想在数据库中以其他表的1个元素的ID Relashionshiped插入数据库中的3个新项目,但是它被创建了,我需要帮助,因为它显示该错误。 setIdRevision()必须是AppBundle \ Entity \ RevisionInfo的实例,或者为null,给定的整数

那是我的代码

            $chequeo = new RevisionChequeos(); 
            $chequeo->setidRevision($id);
            $chequeo->setOk($ok[$i]);
            $chequeo->setNok($nok[$i]);
            $chequeo->setSosp($sospechoso[$i]);
            $chequeo->setNum($num[$i] );
            $chequeo->setNombreChequeo($nombre1);
            $chequeo->setNa($na[$i]);
            $chequeo->setTexto($texto[$i] );
            $entityManager->persist($chequeo);
            $entityManager->flush();

$ id是值3的整数。

1 个答案:

答案 0 :(得分:0)

您必须将对象而不是整数传递给方法。

简短的草稿:

$info = new RevisionInfo();
// .. do something and fill the info

$chequeo = new RevisionChequeos(); 
// pass the whole object, doctrine is handling the saving of the relation by itself
$chequeo->setidRevision($info);
$chequeo->setOk($ok[$i]);
$chequeo->setNok($nok[$i]);
$chequeo->setSosp($sospechoso[$i]);
$chequeo->setNum($num[$i] );
$chequeo->setNombreChequeo($nombre1);
$chequeo->setNa($na[$i]);
$chequeo->setTexto($texto[$i]);

$entityManager->persist($chequeo);
$entityManager->flush();

通常,您应该使用对象(涉及实体关系时)。 结果当然是该列中的整数,但可以处理理论。

您给该理论一个对象,它检查关系和列配置并保存正确的条目(数据库中的外键构造)。