2011-04-05 13 views
1

私は、Doctrine 1.2.4でZendフレームワーク でNestedSetの動作を使用していますが、既に保存されているルートノードの子ノードを挿入するときに問題があります Doctrineのドキュメントでは、同じページ 上の要素私の場合、ルートはすでに作成して保存し、私はここでそれDoctrine NestedSetツリーを操作する

の子を挿入する必要がありますされている間、私は本当にどのように知っていない例

 //// reading old order info 
     $order = new Order(); 
     $orderInfo = $order->read($order_id); 
     $oldOrder = $orderInfo->toArray(); 
     $oldOrder = $oldOrder[0]; 
     //// building the new order information 
     $renew = new Orders(); 
     $renew->domain_id = (int) $oldOrder["domain_id"]; 
     $renew->auth_id  = (int) $oldOrder["auth_id"]; 
     $renew->price  =   $oldOrder["price"]; 
     $renew->type  = (string) $oldOrder["type"]; 
     $renew->timestamp = $oldOrder["timestamp"]; 
     $renew->save(); 
     //// doctrine throwing an error here complaining the $orderInfo should be an instance of Doctrine_Record while its now an instance of Doctrine_Collection 
     $aa = $renew->getNode()->insertAsLastChildOf($orderInfo); 

ですdbから注文を取得し、それをdoctrに変換する方法

親ノードの教義のレコードを取得する必要があり、あなたが子供を挿入するためにそれを使用することができます
// This will retrieve the 'parent' record 
$orderInfo = Doctrine_Core::getTable('Order')->find($order_id); 

// building the new order information 
$renew = new Orders(); 
$renew->domain_id = (int) $oldOrder["domain_id"]; 
$renew->auth_id  = (int) $oldOrder["auth_id"]; 
$renew->price  =   $oldOrder["price"]; 
$renew->type  = (string) $oldOrder["type"]; 
$renew->timestamp = $oldOrder["timestamp"]; 
$renew->save(); 

$renew->getNode()->insertAsLastChildOf($orderInfo); 

:ine_recordまたは任意の提案が

答えて

1

これを試してみてくださいをいただければ幸いです。このnestedset
を操作する他の方法がありますの最後の子として。

関連する問題