2017-09-18 18 views
-1

は私がうまく働いたサイトを持っており、週末に私のクライアントは、メンテナンスレポートパネルにアクセスカントこのエラーはSilverstripe【注意】未定義は、オフセット:0エラー

[Notice] Undefined offset: 0 

が表示されますので、サイトは私ので、devの上で正常に動作しますそれはPHPのバージョンの問題/更新の問題ではない知っている。誰も助けてくれますか? Heresはエラーが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; 
    } 
} 

答えて

-1

通知には、アレイインデックス0が存在しないことが記載されています。インデックスにアクセスする前に、インデックスが存在するかどうかを確認する必要があります。

次であなたのreturn文を置き換えることができます。

return array_key_exists(0, $parentNodes) ? $parentNodes[0]: null; 
関連する問題