2011-02-08 2 views
2

doctrine 1.2로 중첩 세트를 사용합니다.PHP Doctrine 1.2 중첩 세트를 사용하여 다른 상황에서 노드를 이동하는 방법

여기가 저의 예입니다. 나는이 나무를 가지고

Category 1 
    Category 1.1 
    Category 1.2 
    Category 1.3 
    Category 1.4 
Category 2 
    Category 2.1 
     Category 2.1.1 
     Category 2.1.2 
     Category 2.1.3 

상황
1 - 나는
2 종류 1.1의 상단에있는 카테고리 1.3를 이동하는 방법 - 어떻게 카테고리 안쪽에 종류 1.4 이동할 수 있습니다 1.3
3 - 2.1과 그의 아이 안쪽 카테고리 1과 카테고리 1.1 옆으로 어떻게 움직일 수 있습니까?

상황 1 나에게 줄 것이다 :

Category 1 
    Category 1.3 
    Category 1.1 
    Category 1.2 
    Category 1.4 
... 

상황 2 나에게 줄 것이다 :

Category 1 
    Category 1.1 
    Category 1.2 
    Category 1.3 
     Category 1.4 
... 

상황 3 나에게 줄 것이다 :

Category 1 
    Category 1.1 
    Category 2 
     Category 2.1 
     Category 2.1.1 
     Category 2.1.2 
     Category 2.1.3 
    Category 1.2 
    Category 1.3 
    Category 1.4 
+0

빠른 질문입니다. wouldnt 상황 2는 "카테고리 1.4.1"이 아니라 "카테고리 1.4"가됩니까? – KSolo

답변

2

참조 http://www.doctrine-project.org/api/orm/1.2/doctrine/doctrine_node_interface.html

원래의 질문은 완전히 정확하지 않았습니다. 3)의 경우, 카테고리 1에서 2.1을 옮기고 싶다고 말했지 만, 그 시나리오에 대해 제시 한 샘플에 따르면, 실제로 카테고리 2를 모두 안으로 옮기고 싶었습니다 카테고리 1.1의 상단에 1.3 이동

$cat11 = Doctrine_Core::getTable("Category")->find("Category 1.1"); 
$cat13 = Doctrine_Core::getTable("Category")->find("Category 1.3"); 
$cat14 = Doctrine_Core::getTable("Category")->find("Category 1.4"); 
$cat21 = Doctrine_Core::getTable("Category")->find("Category 2.1"); 

: 카테고리 1

이의 당신이 언급 한 이름을 가정 해 봅시다 (종류 1.1) 카테고리의 실제 ID이며, 여기에 당신이 설명하는 시나리오입니다

$cat13->getNode()->moveAsPrevSiblingOf($cat11); 

이동 1.4

$cat14->getNode()->moveAsFirstChildOf($cat13); 

다음 종류 1.1, 카테고리 (1)의 내부 카테고리 2의 모든 이동 :

$cat21->getNode()->moveAsNextSiblingOf($cat11); 

조작 후 카테고리를 저장하는 것을 잊지 마세요, 예를 들어, 1.3 내부 $ cat11-> save(). 조작중인 카테고리를 저장하는 것으로 충분합니다.

+0

도움 주셔서 감사합니다. –

관련 문제