2017-09-18 54 views
-1

我有工作的罰款,並在週末,因爲這個錯誤出現Silverstripe [公告]未定義抵消:0誤差

[Notice] Undefined offset: 0 

該網站工作正常的開發,所以我我的客戶端不能訪問維護報表面板站點知道它不是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不存在。在訪問索引之前,你應該檢查它是否存在。

您可以用下面的更換你的return語句:

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