【问题标题】:Silverstripe [Notice] Undefined offset: 0 error [duplicate]Silverstripe [通知] 未定义偏移量:0 错误 [重复]
【发布时间】:2017-09-18 09:03:57
【问题描述】:

我的网站运行良好,周末我的客户无法访问维护报告面板,因为出现此错误

[Notice] Undefined offset: 0

该网站在 dev 上运行良好,所以我知道它不是 php 版本问题/更新问题。有人可以帮忙吗?这是它说错误的代码在第 44 行,即 return $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;
    }
}

【问题讨论】:

    标签: php silverstripe


    【解决方案1】:

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

    您可以将您的退货声明替换为以下内容:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-06
      • 2015-03-03
      • 2023-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多