【问题标题】:Fatal error getId() on a non-object called in an array of objects在对象数组中调用的非对象上的致命错误 getId()
【发布时间】:2016-12-07 20:41:12
【问题描述】:

我在这段代码中有一个致命错误(在非对象上调用 getId()):

$users[] = $em->getRepository(Tutore::class)->findAll();

foreach ($users as $user) {
        $colle = $em->getRepository(Colle::class)->find($id);
        $passages[] = $em->getRepository(PasserColle::class)->findBy(array('colle' => $colle->getId(),
            'username' => $user->getId()));
}

foreach ($passages as $passage){
        $passages['note'] = $passage->getNote();
}

我转储了 $users,它是一个对象数组。我不明白为什么它向我显示这个错误。 我对 $passage->getNote() 有同样的错误。

【问题讨论】:

  • 这是一个对象,但它是正确的对象吗?例如显示 findAll() 中的一些代码
  • 这是一个教义函数,用于查找存储库中所有对象的数组。 Tutore 存储库扩展了用户存储库。我尝试使用用户存储库,但我有同样的错误。
  • 如果你在 foreach 循环中转储 $user
  • 数组的开头:array(815) { [0]=> object(PACES\UserBundle\Entity\Tutore)#2221 (41)
  • 如果你使用$user = $em->getRepository(Tutore::class)->findAll(); 而不是$user[] = $em->getRepository(Tutore::class)->findAll();

标签: arrays object foreach symfony fatal-error


【解决方案1】:

第一期

$users = $em->getRepository(Tutore::class)->findAll();

代替

$users[] = $em->getRepository(Tutore::class)->findAll();

第二期

试试这个:

$newArray = []; 

foreach ($passages as $key => $passage){
    $newArray[$key]['note'] = $passage->getNote();
}

【讨论】:

    猜你喜欢
    • 2015-06-16
    • 1970-01-01
    • 2013-06-01
    • 1970-01-01
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    相关资源
    最近更新 更多