Silverstripe [通知]未定义的偏移:0错误

时间:2017-09-18 09:03:58

标签: php silverstripe

我有一个网站工作正常,周末我的客户端无法访问维护报告面板,因为出现此错误

[Notice] Undefined offset: 0

该网站在dev上工作正常,所以我知道它不是php版本问题/更新问题。有人可以帮忙吗?下面是代码,它说错误在第44行,返回$ parentNodes [0];

    public function getProblemPath(){
    $parentNodes = array_reverse($this->getParent($this->ParentNodeID, array()));
    return implode(' -> ', $parentNodes) . ' -> ' . $this->Title;
}

public function getProblemStart(){
    $parentNodes = array_reverse($this->getParent($this->ParentNodeID, array()));
    return $parentNodes[0];
}

public function getParent($ID, $nodes){
    if ($parent = DataObject::get_one("MaintenanceNode", array("ID" => $ID))){
        $nodes[] = $parent->Title;
        if ($parent->ParentNodeID){
            return $this->getParent($parent->ParentNodeID, $nodes);
        } else {
            return $nodes;
        }
    } else {
        return $nodes;
    }
}

1 个答案:

答案 0 :(得分:-1)

通知告诉您数组索引0不存在。在访问索引之前,您应该检查它是否存在。

您可以使用以下内容替换return语句:

return array_key_exists(0, $parentNodes) ? $parentNodes[0]: null;