Php 对象无法转换为字符串

Php 对象无法转换为字符串,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,代码: } 错误: PHP可捕获致命错误:类\CommonBundle\Entity\AcaoRede的对象无法转换为第2794行的vendor/doctrine/orm/lib/doctrine/orm/UnitOfWork.PHP中的字符串,请参考:/app_dev.PHP/modulo/editar/col_soft 如何解决此错误?您必须使用Acao的id 条令的find方法需要id字段,因此它尝试使用_-toString方法将$acao转换为字符串。您必须传递$acao->getId才

代码:

}

错误:

PHP可捕获致命错误:类\CommonBundle\Entity\AcaoRede的对象无法转换为第2794行的vendor/doctrine/orm/lib/doctrine/orm/UnitOfWork.PHP中的字符串,请参考:/app_dev.PHP/modulo/editar/col_soft

如何解决此错误?

您必须使用Acao的id


条令的find方法需要id字段,因此它尝试使用_-toString方法将$acao转换为字符串。您必须传递$acao->getId才能使其工作

变量$acao在第二个foreach中输入时采用了不同的值 通过更改变量的名称解决了此问题

$new->setAcao( $em->getRepository( 'CommonBundle:Acao' )->find( $acao->getId() ) );

Stackoverflow是一个英语网站。请记住用英语写标题。$acao和$novasRedes的类型是什么?您确定数据库中的每个查找都有一个记录对象吗。。。在您想要插入的foreach中?请原谅我的无知,但从我的理解来看,$acao变量是一个对象。。。但是我能做什么?@Brunomeneses你读过我的答案吗?谢谢@barker。。但当我通过IDPWP搜索时显示此错误可捕获致命错误:传递给CommonBundle\\Entity\\AcaoRede::setAcao的参数1必须是CommonBundle\\Entity\\Acao的实例,给定字符串,在第74行的CommonBundle/Entity/Acaoredepository.php中调用,在第57行的CommonBundle/Entity/Acaoredepository.php中定义,referer:i打印var_dump$acao;演示:string8 col_patr@BrunoMenezes这意味着您没有传递正确的值;在传递给函数之前,您可能需要向我们展示如何获取$acao或确保$acao是实体的对象实例
$new->setAcao( $em->getRepository( 'CommonBundle:Acao' )->find( $acao->getId() ) );
foreach ( $apagaObj as $acaoObj){
        if (!empty($acaoObj))
            $em->remove($acaoObj);
    }