0

현재 Zend Framework 웹 사이트에서 일부 수정 작업을하고 있습니다. 내가 바꾸려고 노력했던 것 중 하나는 탐색 구조와 웹 사이트의 캐싱입니다. 불행한 점은 작은 문제가 생겨서 어떤 이유로 든 알아 내지 못하는 문제입니다.Zend Navigation - setParent Zend_Navigation_Container

문제는 Zend Navigation 클래스에 전달하려는 데이터베이스에서 다차원 트리 구조 배열을 구축했기 때문입니다. 나에게 배열은 합법적 인 것처럼 보이지만 Zend는 setParent 오류 '을 던졌습니다. Zend_Navigation_Page :: setParent()에 전달 된 인수 1은 Zend_Navigation_Container 인스턴스 인'이어야합니다.

일부 디버깅 및 조사가 끝나면 테스트 배열 (pastebin array)을 찾아 첫 번째 인수 배열로 붙여 넣습니다. 어레이는 생성 된 배열 (pastebin array)과 거의 같습니다.

누군가가이 문제를 해결할 수 있기를 바랍니다.

감사합니다.

답변

0

setParent로 보내는 배열이 Zend_Navigation_Container의 인스턴스인지 확인해야합니다.

먼저 Zend_Navigation()을 통해 배열을 붙여넣고 인스턴스를 Zend_Navigation_Page의 setParent 함수를 통해 붙여 넣습니다.

+0

내가 잘못한 게 아니라 단지 생성 된 배열에 문제가 있다는 것뿐입니다. 내가 어떻게 알았지? 글쎄, 나는 'Zend_Navigation'에 직접 호출하는 소위 '테스트 배열'을 ... 내가 원하는대로 완벽하게 작동한다. 변수 중 하나의 배열 구조에 문제가 있습니다. – wpoortman

0

발견. 'test array'덕분에 생성 된 배열에서 하나씩 변수를 추가했습니다. $ row [ 'parent'] 변수를 추가 한 후 'test array'도 setParent 오류로 충돌합니다.

foreach($elements as $key => $value) { 

    $leaf = $value 
    $value['swag'] = $value['parent']; 

    unset($value['parent']); 

} 

위의 코드는이 버그를 수정 한 스 니펫과 정확히 일치하지 않습니다.