Pimcore\Model\Object\Service::rewriteIds PHP Method

rewriteIds() public static method

..), "asset" => array(...) )
public static rewriteIds ( $object, $rewriteConfig ) : AbstractObject
$object
$rewriteConfig
return AbstractObject
    public static function rewriteIds($object, $rewriteConfig)
    {
        // rewriting elements only for snippets and pages
        if ($object instanceof Concrete) {
            $fields = $object->getClass()->getFieldDefinitions();
            foreach ($fields as $field) {
                if (method_exists($field, "rewriteIds")) {
                    $setter = "set" . ucfirst($field->getName());
                    if (method_exists($object, $setter)) {
                        // check for non-owner-objects
                        $object->{$setter}($field->rewriteIds($object, $rewriteConfig));
                    }
                }
            }
        }
        // rewriting properties
        $properties = $object->getProperties();
        foreach ($properties as &$property) {
            $property->rewriteIds($rewriteConfig);
        }
        $object->setProperties($properties);
        return $object;
    }

Usage Example

 public function copyRewriteIdsAction()
 {
     $transactionId = $this->getParam("transactionId");
     $idStore = Tool\Session::useSession(function ($session) use($transactionId) {
         return $session->{$transactionId};
     }, "pimcore_copy");
     if (!array_key_exists("rewrite-stack", $idStore)) {
         $idStore["rewrite-stack"] = array_values($idStore["idMapping"]);
     }
     $id = array_shift($idStore["rewrite-stack"]);
     $object = Object::getById($id);
     // create rewriteIds() config parameter
     $rewriteConfig = array("object" => $idStore["idMapping"]);
     $object = Object\Service::rewriteIds($object, $rewriteConfig);
     $object->setUserModification($this->getUser()->getId());
     $object->save();
     // write the store back to the session
     Tool\Session::useSession(function ($session) use($transactionId, $idStore) {
         $session->{$transactionId} = $idStore;
     }, "pimcore_copy");
     $this->_helper->json(array("success" => true, "id" => $id));
 }
All Usage Examples Of Pimcore\Model\Object\Service::rewriteIds