Symfony 3 - AppBundle \ Entity \ User的查询缺少标识符ID

时间:2018-03-13 15:23:52

标签: symfony

我是开发新手。

我想使用此脚本: https://github.com/sebtouze/LoupGarou 。 我很好地遵循了这些步骤,但是我收到了一个错误:

  

Doctrine \ ORM \ ORMException:查询的标识符ID缺失   不适用的AppBundle \ Entity \ User       在C:\ UwAmp \ www \ vendor \ doctrine \ orm \ lib \ Doctrine \ ORM \ ORMException.php   第294行

     

在   学说\ ORM \ ORMException :: missingIdentifierField( '的appbundle \实体\用户',   'ID')       在C:\ UwAmp \ www \ vendor \ doctrine \ orm \ lib \ Doctrine \ ORM \ EntityManager.php   第403行

     

在Doctrine \ ORM \ EntityManager-> find('AppBundle \ Entity \ User',   array('id'=> null),null,null)       在C:\ UwAmp \ www \ vendor \ doctrine \ orm \ lib \ Doctrine \ ORM \ EntityRepository.php   第154行

     

在Doctrine \ ORM \ EntityRepository->找到(null)       在C:\ UwAmp \ www \ src \ AppBundle \ Controller \ DefaultController.php第189行

     

在AppBundle \ Controller \ DefaultController-> indexAction('public')       在C:\ UwAmp \ www \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ HttpKernel \ HttpKernel.php   第135行

     

在Symfony \ Component \ HttpKernel \ HttpKernel-> handleRaw(object(Request),   '1')       在C:\ UwAmp \ www \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ HttpKernel \ HttpKernel.php   第57行

     

在Symfony \ Component \ HttpKernel \ HttpKernel->句柄(对象(请求),   '1',真实)       在C:\ UwAmp \ www \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ HttpKernel \ DependencyInjection \ ContainerAwareHttpKernel.php   第67行

     

在   的Symfony \组件\ HttpKernel \ DependencyInjection \ ContainerAwareHttpKernel->手柄(对象(请求),   '1',真实)       在C:\ UwAmp \ www \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ HttpKernel \ Kernel.php   第183行

     

在Symfony \ Component \ HttpKernel \ Kernel->句柄(对象(请求))       在C:\ UwAmp \ www \ web \ app.php第28行

Error in picture

你能帮我吗?

提前感谢。

4 个答案:

答案 0 :(得分:0)

您的帖子中有答案

DefaultController.php line 189你传递了null的变量。检查那里传递的变量,尤其是id我不能多说,因为我没有看到你发布的代码只是错误。

答案 1 :(得分:0)

如上所述,你的错误就在这里(DefaultController.php第189行):

foreach($arraySynthesisMayorVotes as $vote)
{
    $vote = $userRepository->find($vote['id']);
}

你正在经历一个foreach并一遍又一遍地覆盖$ vote。这也是你和foreach一样的变量。

答案 2 :(得分:0)

我认为此代码块是罪魁祸首。我无法理解此代码块。我认为您需要更改或删除它

add_action('template_redirect', 'woo_custom_redirect');
function woo_custom_redirect( $redirect ) {

if (
    ! is_user_logged_in()       
    && (is_checkout())
    ) {
    wp_redirect( home_url( '/my-account/edit-account/' ) );
    return $redirect;
    }
}

如果您想计算总票数,则可以使用$userRepository = $em->getRepository('AppBundle:User'); foreach($arraySynthesisMayorVotes as $vote) { $vote = $userRepository->find($vote['id']); } foreach($arraySynthesisVillageVotes as $vote) { $vote = $userRepository->find($vote['id']); } 。但这取决于您的业务逻辑

答案 3 :(得分:0)

实体不是数组,因此无法查询。这是一个对象。

在第189行和第193行,而不是:

$vote = $userRepository->find($vote['id']);

尝试:

$vote = $userRepository->find($vote->getId());