当我尝试转到调用实体的页面时,出现了此错误消息。 (例如,联系人页面或文章页面)
“通知:未定义的变量:parentClass”,它使我引用此文件 vendor \ doctrine \ persistence \ lib \ Doctrine \ Common \ Persistence \ AbstractManagerRegistry.php第176行
public function getManagerForClass($class)
{
// Check for namespace alias
if (strpos($class, ':') !== false) {
[$namespaceAlias, $simpleClassName] = explode(':', $class, 2);
$class = $this->getAliasNamespace($namespaceAlias) . '\\' . $simpleClassName;
}
$proxyClass = new ReflectionClass($class);
if ($proxyClass->implementsInterface($this->proxyInterfaceName)) {
$parentClass = $proxyClass->getParentClass();
if (! $parentClass) {
return null;
}
}
$class = $parentClass->getName();
foreach ($this->managers as $id) {
$manager = $this->getService($id);
if (! $manager->getMetadataFactory()->isTransient($class)) {
return $manager;
}
}
}
我真的不知道该怎么办。 如果有人有主意或已经有此错误:)
谢谢!
答案 0 :(得分:1)
您正确缩进的代码如下:
$proxyClass = new ReflectionClass($class);
if ($proxyClass->implementsInterface($this->proxyInterfaceName)) {
$parentClass = $proxyClass->getParentClass();
if (! $parentClass) {
return null;
}
}
$class = $parentClass->getName();
现在,在$proxyClass->implementsInterface(...)
为FALSE
的情况下,没有定义$parentClass
,因此会出现错误消息。
由于该代码似乎是在学说中,所以也许是一个错误。也许它是固定的,由于某种原因您使用了旧版本。也许更新?
答案 1 :(得分:0)
您是完全正确的,我不知道为什么$class = $parentClass->getName();
不在'if'范围内,问题实际上是这个!谢谢!