我正在使用Symfony 4.2,但遇到一个非常奇怪的错误:
Call to a member function getMetaValue() on null
在这一行:
$firstName = $firstNameObj->getMetaValue();
奇怪的是我写的时候:
var_dump($firstNameObj);
$firstName = $firstNameObj->getMetaValue();
var_dump显示了一个普通对象,其中包含填充的属性metaKey
,在调试位置,我将die
放入了该getter方法:
public function getMetaValue(): ?string
{
var_dump($this);
die('aaaa'.$this->metaValue);
return $this->metaValue;
}
在这些调试转储中,一切看上去都很正常。而且错误不是直接的,我的意思是它并没有停止在这一行,而是在结束了调用此函数的foreach之后:
foreach ($wpUsers as $wpUser) {
$users[] = $this->getUserFromMultipleTables($wpUser->getId());
}
public function getUserFromMultipleTables($id)
{
$wpUser = $this->wpUsersRepository->findOneBy(['id' => $id]);
$firstNameObj = $this->wpUsermetaRepository->findOneBySomeField($id,'first_name');
$lastNameObj = $this->wpUsermetaRepository->findOneBySomeField($id,'last_name');
// dd($firstNameObj);
$firstName = $firstNameObj->getMetaValue();
$lastName = $lastNameObj->getMetaValue();
$user = new User();
$user->setId($wpUser->getId());
$user->setUsername($wpUser->getUserLogin());
$user->setFirstName($firstName);
$user->setLastName($lastName);
$user->setEmail($wpUser->getUserEmail());
// dd($user);
return $user;
}